4 GB Ram on OpenSuse 10.3

We have a system running ZoneMinder for security camera recording.
The OS is OpenSuse 10.3 32 bit version. The 32 it was used since there was RPM for Zminder.

The system has 4 GB RAM, but only see 3 GB according running top:

top - 08:50:18 up 23:47, 1 user, load average: 0.26, 0.31, 0.35

Tasks: 138 total, 3 running, 135 sleeping, 0 stopped, 0 zombie

Cpu(s): 50.0%us, 50.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 3360608k total, 3240516k used, 120092k free, 112856k buffers

Swap: 3727072k total, 84k used, 3726988k free, 2261092k cached

Any suggestions would be appreciated.

Because various areas in the 32-bit address space are occupied by PCI addresses, used by video hardware, reserved by the kernel, or for one reason or another not usable for RAM, you will not be able to see all 4GB. If the motherboard hardware is capable, the unused RAM can be remapped above 4GB, and used by a PAE kernel, but only if the hardware is capable. Not all motherboards can do it. They may say you can put 4GB of RAM in the slots, but they don’t tell you that part of it will not be accessible, because they have a 32 address line bottleneck somewhere making some of the memory out of reach.

You can look at the output of dmesg to see if this remapping has taken place. The following was on a 64-bit system so it may not be useful to you; I’m just showing the remapping.

BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 0000000000100000 - 00000000bffc0000 (usable)
 BIOS-e820: 00000000bffc0000 - 00000000bffcfc00 (ACPI data)
 BIOS-e820: 00000000bffcfc00 - 00000000bffff000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000fec90000 (reserved)
 BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
 BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 00000001ffffe000 (usable)
 BIOS-e820: 00000001ffffe000 - 0000000200000000 (reserved)
 BIOS-e820: 0000000200000000 - 0000000240000000 (usable)

This server has 8GB RAM and some of the memory is remapped above 8GB (0x200000000) to make room for various reserved spaces.

If your CPU is 64-bit and your motherboard actually supports > 4GB RAM you can install OpenSUSE 64-bit. You can still run 32-bit programs because 32-bit libraries can co-exist with 64-bit libraries.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

As with every OS you must use a 64-bit version to see all of your RAM.
The 32-bit memory space is for RAM, video RAM, and any other memory like
that. If you have a 512 MB video card, for example, you will not get
512 MB RAM available to you from the main system RAM if you actually
have 4 GB. You should see this on any 32-bit machine regardless of OS.

Good luck.

jniffen wrote:
> We have a system running ZoneMinder for security camera recording.
> The OS is OpenSuse 10.3 32 bit version. The 32 it was used since there
> was RPM for Zminder.
>
> The system has 4 GB RAM, but only see 3 GB according running top:
>
> top - 08:50:18 up 23:47, 1 user, load average: 0.26, 0.31, 0.35
>
> Tasks: 138 total, 3 running, 135 sleeping, 0 stopped, 0 zombie
>
> Cpu(s): 50.0%us, 50.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si,
> 0.0%st
>
> Mem: 3360608k total, 3240516k used, 120092k free, 112856k
> buffers
>
> Swap: 3727072k total, 84k used, 3726988k free, 2261092k cached
>
> Any suggestions would be appreciated.
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJCHBf3s42bA80+9kRAprMAJwKv6ItoeM0ygR1VWCdvYEyZe6rjgCeM+jY
Xfax1zqSJe5esWfDKYMzuXU=
=Zzcg
-----END PGP SIGNATURE-----

This is often also a BIOS/Motherboard thing and not so much the limit of a 32 bit OS. If loading Windows for example, you’ll probably see the same amount of memory.

Not much to do about that I’m afraid…

Yes this is BIOS/Motherboard thing.
For example i have openSuse 11.0 64bit version installed on this
machine and it has 8GB RAM, but kernel sees only about 3GB RAM.
What is happening? When checking with command ‘dmesg | more’ i
can see the following hints (copyNpaste from dmesg output)


Linux version 2.6.25.18-0.2-default (geeko@buildhost) (gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE Linux) ) #1 SMP 2008-10-21 16:30:26 +0200
Command line: auto BOOT_IMAGE=Linux root=/dev/disk/by-id/scsi-SATA_ST3300831A_3NF0FDYF-part3 resume=/dev/sdb8 splash=silent showopts
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009dc00 (usable)
BIOS-e820: 000000000009dc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bff70000 (usable)
BIOS-e820: 00000000bff70000 - 00000000bff7e000 (ACPI data)
BIOS-e820: 00000000bff7e000 - 00000000bffd0000 (ACPI NVS)
BIOS-e820: 00000000bffd0000 - 00000000c0000000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000200000000 (usable)
Entering add_active_range(0, 0, 157) 0 entries of 3200 used
Entering add_active_range(0, 256, 786288) 1 entries of 3200 used
Entering add_active_range(0, 1048576, 2097152) 2 entries of 3200 used
end_pfn_map = 2097152
WARNING: BIOS bug: CPU MTRRs don’t cover all of memory, losing 5120MB of RAM.

Then when checking amount of RAM with e.g. top or free commands i see something like the following, this is output of command ‘free -m’.


         total       used       free     shared    buffers     cached

Mem: 2957 621 2336 0 43 278
-/+ buffers/cache: 299 2658
Swap: 2055 0 2055

In other words, i should update my BIOS to make use of all the RAM i have.

Also 32bit Windows XP Pro SP2 i am running in this machine to play games sees only about 3GB of RAM, not 4GB of 8GB.

Using 10.3 on a 4 GiB AMD 64 box, with 32 bit default kernel without PAE (not using bigsmp).

top - 12:57:53 up 8:24, 4 users, load average: 0.20, 0.16, 0.10
Tasks: 138 total, 2 running, 136 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.3%us, 0.3%sy, 0.0%ni, 92.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3631644k total, 1057588k used, 2574056k free, 100716k buffers
Swap: 8096676k total, 0k used, 8096676k free, 546400k cached

fir:/mnt/bin # rpm -qa |grep kernel
linux-kernel-headers-2.6.22-19
kernel-default-2.6.22.19-0.1
kernel-docs-2.6.22.5-31
kernel-bigsmp-2.6.22.19-0.1
nfs-kernel-server-1.1.0-8

Does installing the bigsmp kernel help find more memory? I actually prefer default on this box, as in general it has unused RAM, making some wastage irrelevant.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I believe bigsmp would give you that last couple hundred megabytes, but
so would a 64-bit kernel if you can run 64-bit (that would require more
of a reinstall than an additional package, though). I can’t remember
well enough… haven’t used 32-bit for a couple years.

Good luck.

robopensuse wrote:
> Using 10.3 on a 4 GiB AMD 64 box, with 32 bit default kernel without PAE
> (not using bigsmp).
>
> top - 12:57:53 up 8:24, 4 users, load average: 0.20, 0.16, 0.10
> Tasks: 138 total, 2 running, 136 sleeping, 0 stopped, 0 zombie
> Cpu(s): 7.3%us, 0.3%sy, 0.0%ni, 92.4%id, 0.0%wa, 0.0%hi, 0.0%si,
> 0.0%st
> Mem: 3631644k total, 1057588k used, 2574056k free, 100716k
> buffers
> Swap: 8096676k total, 0k used, 8096676k free, 546400k
> cached
>
> fir:/mnt/bin # rpm -qa |grep kernel
> linux-kernel-headers-2.6.22-19
> kernel-default-2.6.22.19-0.1
> kernel-docs-2.6.22.5-31
> kernel-bigsmp-2.6.22.19-0.1
> nfs-kernel-server-1.1.0-8
>
> Does installing the bigsmp kernel help find more memory? I actually
> prefer default on this box, as in general it has unused RAM, making some
> wastage irrelevant.
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJdLdY3s42bA80+9kRAt/rAJ94C8YwyldRpz7mqbh5cN2/WdCu9QCghRJB
bS4jVKGPe+LS0zA2x2evgyc=
=1e/G
-----END PGP SIGNATURE-----

I updated BIOS of my motherboard (P5Q-E) from orig. firmware version
1306 to the latest version 1703 that Asus has available from their web pages. That was only change, now i have all 8GB RAM in use. Easiest way to check that is with command: more /proc/meminfo
The first line tells it.

MemTotal: 8199752 kB

But 32bit Win XP Pro SP2 still sees only 3GB RAM, so it is just a gameloader issue :wink: