Hmm, I used memmap=8GB!4GB as per https://docs.pmem.io/getting-started-guide/creating-development-environments/linux-environments/linux-memmap
# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-4.9.0-8-686-pae root=UUID=xxx ro quiet memmap=8G!4G But while the pae kernel logs look changed [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000f7feffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000f7ff0000-0x00000000f7ff7fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x00000000f7ff8000-0x00000000f7ffffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fecfffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffbfffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fff80000-0x00000000ffffffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x04000000fbffffff] usable [ 0.000000] Notice: NX (Execute Disable) protection missing in CPU! [ 0.000000] e820: user-defined physical RAM map: [ 0.000000] user: [mem 0x0000000000000000-0x000000000009fbff] usable [ 0.000000] user: [mem 0x000000000009fc00-0x000000000009ffff] reserved [ 0.000000] user: [mem 0x00000000000f0000-0x00000000000fffff] reserved [ 0.000000] user: [mem 0x0000000000100000-0x00000000f7feffff] usable [ 0.000000] user: [mem 0x00000000f7ff0000-0x00000000f7ff7fff] ACPI data [ 0.000000] user: [mem 0x00000000f7ff8000-0x00000000f7ffffff] ACPI NVS [ 0.000000] user: [mem 0x00000000fec00000-0x00000000fecfffff] reserved [ 0.000000] user: [mem 0x00000000fee00000-0x00000000fee00fff] reserved [ 0.000000] user: [mem 0x00000000ffb00000-0x00000000ffbfffff] reserved [ 0.000000] user: [mem 0x00000000fff80000-0x00000000ffffffff] reserved [ 0.000000] user: [mem 0x0000000100000000-0x00000002ffffffff] persistent (type 12) [ 0.000000] user: [mem 0x0000000300000000-0x04000000fbffffff] usable [ 0.000000] Legacy DMI 2.3 present. I don't have any pmem* device # ls -la /dev/*me* crw-r----- 1 root kmem 1, 1 Feb 17 06:07 /dev/mem crw------- 1 root root 10, 59 Feb 17 06:07 /dev/memory_bandwidth Even after loading the module # lsmod | grep pm nd_pmem 16384 0 nd_btt 24576 1 nd_pmem libnvdimm 94208 3 nd_btt,nd_pmem,nd_e820 Does the *pmem module require some extra parameters? How can I enable logging for it? (to see what it does/tries to do?) Thanks again! Ciprian On Sun, Feb 17, 2019 at 12:27 PM Ciprian Manea <[email protected]> wrote: > Hi, > > Thank you for your quick response Ben! > > I'm attaching here my current kernel ouput (first pages) if any of you can > check it out and tell me if anything seems wrong. > > I couldn't see in this old BIOS any settings related to memory 🤔 > > I vaguely remember more than 5 years ago when I tried last time to use > more than the 4GB, that I had to disable ACPI if I remember correctly, > force some MTRR parameters and of course use a PAE kernel. Actually, the > only thing which remotely worked was an enterprise kernel from > CentOS/RedHat 5.x, but with those forced parameters even if the free > command was showing 8 or 12 GB RAM, then kernel was somehow busy looping > with "something" 30-40% of the time, under no user load. > > > Thanks! > Ciprian > > On Sat, Feb 16, 2019 at 10:39 PM Ben Hutchings <[email protected]> > wrote: > >> On Sat, 2019-02-16 at 11:31 +0200, Ciprian Manea wrote: >> > Hi there, >> > >> > I have this old server with 4x Intel Plumas (32 bit) running a >> > recent 4.9.0-8-686-pae stock kernel >> > >> > And while the BIOS sees and tests 12GB of RAM, the Debian PAE enabled >> > kernel sees only 4GB >> > >> > What are the PAE tricks to get to see/use more than 4GB RAM in the >> latest >> > Debian 9.7? >> >> You shouldn't need to do anything special. At a guess, the BIOS has a >> compatibility setting that limits the RAM size it reports to the OS, >> and you'll need to disable that. >> >> If you know what you're doing, you can override the detected memory >> size and physical addresses with the mem= and memmap= kernel >> parameters. >> >> However, beware that less than 1 GiB of the 12 GiB RAM will be "lowmem" >> (directly accessible by the kernel) and the Linux virtual memory >> manager no longer works well with such low ratios of lowmem to total >> RAM. >> >> Ben. >> >> -- >> Ben Hutchings >> When in doubt, use brute force. - Ken Thompson >> >> >>

