Re: /proc/kcore size incorrect ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 24 Oct 2005 00:13:44 +0100, Jon Masters <[email protected]> wrote:

> On 10/23/05, J.A. Magallon <[email protected]> wrote:
> 
> > BTW, any simple method to get the real mem of the box ?
> 
> This is a typical example of using a hammer to crack a nut aka
> modifying the kernel before giving up on userspace.
> 

Ejem.

Who talks about modifying anything ?

> Several ways of looking up a solution:
> 
>     * google

Well, perhaps I buy this, but as this looks like a strange/buggy thing, as
I will explain later...

>     * man -k memory
> 
> Leading to:
> 
> * free(1):
>     ``free  displays the total amount of free and used physical and swap''
> 
> * Or /proc/meminfo (both the same thing) - which you can trivially
> parse using sed:
> 
> cat /proc/meminfo | sed -n -e "s/^MemTotal:[ ]*\([0-9]*\) kB\$/\1/p"
> 

Do your homework.

free gives the free amount of memory _available for the user_, ie, the
full memory of the box minus the kernel reserved part.

From dmesg:

BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fee0000 (usable)
 BIOS-e820: 000000003fee0000 - 000000003fee3000 (ACPI NVS)
 BIOS-e820: 000000003fee3000 - 000000003fef0000 (ACPI data)
 BIOS-e820: 000000003fef0000 - 000000003ff00000 (reserved)
 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
1022MB LOWMEM available.
...
Memory: 1034744k/1047424k available (1858k kernel code, 12208k reserved, 634k da
ta, 184k init, 0k highmem)
werewolf:~> echo $((1047424 / 1024))
1022

werewolf:~> free
             total       used       free     shared    buffers     cached
Mem:       1035012    1000660      34352          0      98348     649284
werewolf:~> cat /proc/meminfo | grep MemTotal
MemTotal:      1035012 kB
werewolf:~> echo $((1035012 / 1024))
1010

So free/proc give the available memory, not the total:
- free: 1010 Mb
- kcore: 1022 Mb

I expected /proc/kcore to give the size of your installed memory, with
the reserved BIOS areas just not accesible, but it looks like it already
has them discounted, so gives 1022 Mb.

It looks really silly to have a motd say "wellcome to this box, it has
2 xeons and 1022 Mb of RAM".



--
J.A. Magallon <jamagallon()able!es>     \               Software is like sex:
werewolf!able!es                         \         It's better when it's free
Mandriva Linux release 2006.1 (Cooker) for i586
Linux 2.6.13-jam9 (gcc 4.0.1 (4.0.1-5mdk for Mandriva Linux release 2006.0))

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux