Messages in this thread |  | | Date | Mon, 24 Oct 2005 01:57:10 +0200 | | From | "J.A. Magallon" <> | | | Subject | Re: /proc/kcore size incorrect ? |
On Mon, 24 Oct 2005 00:13:44 +0100, Jon Masters <jonmasters@gmail.com> wrote:
> On 10/23/05, J.A. Magallon <jamagallon@able.es> 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))
[unhandled content-type:application/pgp-signature] |  |