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