Re: [patch] 2.6.8.1: display committed memory limit and availablein meminfo

From: Frank Hirtz
Date: Tue Sep 14 2004 - 15:44:14 EST


The following patch will have the committed memory limit (per the current overcommit ratio) and the amount of memory remaining under this limit displayed in meminfo.

It's presently somewhat difficult to use the strict memory overcommit settings as it's somewhat difficult to determine the amount of memory remaining under the cap. This patch would make using strict overcommit a good bit simpler. Does such an addition seem reasonable?

Thank you,

Frank.


Frank Hirtz wrote:
> Hi,
>
> I'm new to the list, and was wondering since I've not seen any feedback
> on this patch whether that was because the patch is not good/a good idea
> or whether no one has an opinion on displaying this information. I'd
> like to get this included and any feedback would be greatly appreciated.
>
> Thanks again,
>
> Frank.
>

Hearing no feedback on this, I'd like to request that this patch be included in the stock kernel release. As always, any feedback is appreciated.

Thank you again,

Frank. --- linux-2.6.8.1/fs/proc/proc_misc.c 2004-08-18 16:32:07.000000000 -0400
+++ linux-2.6.8.1.new/fs/proc/proc_misc.c 2004-08-18 16:55:47.000000000 -0400
@@ -153,7 +153,7 @@
int count, int *eof, void *data)
{
struct sysinfo i;
- int len, committed;
+ int len, committed, allowed;
struct page_state ps;
unsigned long inactive;
unsigned long active;
@@ -171,6 +171,8 @@
si_meminfo(&i);
si_swapinfo(&i);
committed = atomic_read(&vm_committed_space);
+ allowed = ((totalram_pages - hugetlb_total_pages())
+ * sysctl_overcommit_ratio / 100) + total_swap_pages;

vmtot = (VMALLOC_END-VMALLOC_START)>>10;
vmi = get_vmalloc_info();
@@ -198,7 +200,9 @@
"Writeback: %8lu kB\n"
"Mapped: %8lu kB\n"
"Slab: %8lu kB\n"
+ "CommitLimit: %8lu kB\n"
"Committed_AS: %8u kB\n"
+ "CommitAvail: %8ld kB\n"
"PageTables: %8lu kB\n"
"VmallocTotal: %8lu kB\n"
"VmallocUsed: %8lu kB\n"
@@ -220,7 +224,9 @@
K(ps.nr_writeback),
K(ps.nr_mapped),
K(ps.nr_slab),
+ K(allowed),
K(committed),
+ K(allowed - committed),
K(ps.nr_page_table_pages),
vmtot,
vmi.used,