meminfo

Bernd Eckenfels (ukd1@rzstud1.rz.uni-karlsruhe.de)
23 Mar 1996 04:44:43 GMT


Hi,

I just put some debugging output into the kernel, cause i wanted to enhance
the meminfo procfile. The following code:

void si_meminfo(struct sysinfo *val)
{
int i;
int fp=0,su=0,mu=0;

int all=0;
int reserved=0;
int uptodate=0;
int error=0;
int referenced=0;
int locked=0;
int free_after=0;
int unused=0;

i = high_memory >> PAGE_SHIFT;
val->totalram = 0;
val->sharedram = 0;
val->freeram = nr_free_pages << PAGE_SHIFT;
val->bufferram = buffermem;
while (i-- > 0) {
all++;
if (mem_map[i].uptodate) uptodate++;
if (mem_map[i].reserved) reserved++;
if (mem_map[i].error) error++;
if (mem_map[i].referenced) referenced++;
if (mem_map[i].locked) locked++;
if (mem_map[i].free_after) free_after++;
if (mem_map[i].unused) unused++;

if (mem_map[i].reserved)
continue;
val->totalram++;
if (!mem_map[i].count) { fp++;
continue; }
if (mem_map[i].count == 1) su++; else {
val->sharedram += mem_map[i].count-1; mu++; }
}
printk("nr_free_pages=%d fp=%d su=%d mu=%d sharedram=%d\n",nr_free_pages,fp,su,mu,val->sharedram);
printk("all=%d uptodate=%d reserved=%d error=%d referenced=%d locked=%d free_after=%d unused=%d\n",all,uptodate,reserved,error,referenced,locked,free_after,unused);
val->totalram <<= PAGE_SHIFT;
val->sharedram <<= PAGE_SHIFT;
return;
}

is the modified funtion i use to get a few different mem statistics. If I
run 'free' a few times (which calls this function), I get:

nr_free_pages=368 fp=378 su=1222 mu=119 sharedram=684
all=2048 uptodate=570 reserved=329 error=0 referenced=392 locked=0 free_after=0 unused=0
nr_free_pages=46 fp=63 su=1535 mu=121 sharedram=680
all=2048 uptodate=910 reserved=329 error=0 referenced=163 locked=0 free_after=0 unused=0
nr_free_pages=44 fp=61 su=1537 mu=121 sharedram=683
all=2048 uptodate=910 reserved=329 error=0 referenced=163 locked=0 free_after=0 unused=0
nr_free_pages=78 fp=88 su=1518 mu=113 sharedram=652
all=2048 uptodate=910 reserved=329 error=0 referenced=163 locked=0 Bfree_after=0 unused=0
nr_free_pages=76 fp=86 su=1520 mu=113 sharedram=655
all=2048 uptodate=910 reserved=329 error=0 referenced=163 locked=0 free_after=0 unused=0

Generally there is a difference of 10 pages between nr_free_pages and fp.
The only time this difference changed was while i did some floppy access.
Can anybody point me to any reasons for that difference (I guess its DMA
depending, right?)

Greetings
Bernd

-- 
  (OO)      -- Bernd_Eckenfels@Wittumstrasse13.76646Bruchsal.de --
 ( .. )  ecki@lina.{inka.de,ka.sub.org}  http://home.pages.de/~eckes/
  o--o     *plush*  2048/93600EFD  eckes@irc  +4972573817  *plush*
(O____O)       If privacy is outlawed only Outlaws have privacy