Fedora Server 39 not using all of the available RAM on my HP EliteDesk 705 G2 Desktop Mini

Hello,
I am an avid tinkerer with computers and this time I decided to jump into the server world. for that I decided to buy a small second hand computer (hp elitedesk 705 g2 mini) install Fedora server 39 to play around and function as my home server.
So far it is going great and the experience is fantastic, hoever I noticed that in the “Usage” card of the “Overview” tab in cockpit, it says that there is only 3.7 GiB of ram. The computer has 8 GB installed and in BIOS it also shows that there is 8192 MB of RAM available.

I have gone into a search for fixes for this but I still havent been able to find any solution.

Testing out some commands I have seen in other forums regarding similar things I have gotten the following outputs:

cristobal@jarvis:~$ cat /proc/meminfo | grep MemTotal
MemTotal:        3827560 kB
cristobal@jarvis:~$ free -g
               total        used        free      shared  buff/cache   available
Mem:               3           0           2           0           0           2
Swap:              3           0           3
cristobal@jarvis:~$ uname -a
Linux jarvis 6.5.11-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov  8 22:37:57 UTC 2023 x86_64 GNU/Linux

Another interesting thing is that when I look into the Hardware information screen, It does show both Channels populated:

Any idea of what could be happening and how to fix it? Please bare in mind that although I am not scared of the terminal, I am now linux power user by any stretch of the imagination.

thanks in advanced.

have you checked dmesg and dmesg | grep -i memory for any clues?
Is your BIOS firmware up to the latest available?

Just to be sure, I would reseat the memory again.

1 Like

hello @augenauf I have reseated the memory, and doing dmesg gives this output:

$ dmesg | grep -i memory
[    0.006417] ACPI: Reserving FACP table memory at [mem 0xb7ffa000-0xb7ffa10b]
[    0.006419] ACPI: Reserving DSDT table memory at [mem 0xb7fe5000-0xb7ff23f8]
[    0.006421] ACPI: Reserving FACS table memory at [mem 0xb7f85000-0xb7f8503f]
[    0.006422] ACPI: Reserving UEFI table memory at [mem 0xb7ffd000-0xb7ffd041]
[    0.006423] ACPI: Reserving TCPA table memory at [mem 0xb7ffc000-0xb7ffc031]
[    0.006424] ACPI: Reserving SSDT table memory at [mem 0xb7ffb000-0xb7ffb3b7]
[    0.006425] ACPI: Reserving ASF! table memory at [mem 0xb7ff9000-0xb7ff906d]
[    0.006426] ACPI: Reserving MSDM table memory at [mem 0xb7ff8000-0xb7ff8054]
[    0.006427] ACPI: Reserving SLIC table memory at [mem 0xb7ff7000-0xb7ff7175]
[    0.006428] ACPI: Reserving WSMT table memory at [mem 0xb7ff6000-0xb7ff6027]
[    0.006429] ACPI: Reserving HPET table memory at [mem 0xb7ff5000-0xb7ff5037]
[    0.006431] ACPI: Reserving APIC table memory at [mem 0xb7ff4000-0xb7ff408f]
[    0.006432] ACPI: Reserving MCFG table memory at [mem 0xb7ff3000-0xb7ff303b]
[    0.006433] ACPI: Reserving SSDT table memory at [mem 0xb7fe4000-0xb7fe4853]
[    0.006434] ACPI: Reserving SSDT table memory at [mem 0xb7fdb000-0xb7fe3739]
[    0.006435] ACPI: Reserving VFCT table memory at [mem 0xac268000-0xac277c83]
[    0.006436] ACPI: Reserving SSDT table memory at [mem 0xb7fd9000-0xb7fda5ef]
[    0.006437] ACPI: Reserving FPDT table memory at [mem 0xb7fd8000-0xb7fd8043]
[    0.006781] Early memory node ranges
[    0.021070] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.021073] PM: hibernation: Registered nosave memory: [mem 0x0008f000-0x0008ffff]
[    0.021075] PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000fffff]
[    0.021077] PM: hibernation: Registered nosave memory: [mem 0x9c6fa000-0x9c6fafff]
[    0.021079] PM: hibernation: Registered nosave memory: [mem 0x9c805000-0x9c805fff]
[    0.021081] PM: hibernation: Registered nosave memory: [mem 0xa8608000-0xa8608fff]
[    0.021083] PM: hibernation: Registered nosave memory: [mem 0xa8617000-0xa8617fff]
[    0.021085] PM: hibernation: Registered nosave memory: [mem 0xac268000-0xac277fff]
[    0.021087] PM: hibernation: Registered nosave memory: [mem 0xb6acf000-0xb78cefff]
[    0.021088] PM: hibernation: Registered nosave memory: [mem 0xb78cf000-0xb7fcefff]
[    0.021089] PM: hibernation: Registered nosave memory: [mem 0xb7fcf000-0xb7ffefff]
[    0.021091] PM: hibernation: Registered nosave memory: [mem 0xb8000000-0xfebfffff]
[    0.021091] PM: hibernation: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[    0.021092] PM: hibernation: Registered nosave memory: [mem 0xfec01000-0xfec0ffff]
[    0.021093] PM: hibernation: Registered nosave memory: [mem 0xfec10000-0xfec10fff]
[    0.021094] PM: hibernation: Registered nosave memory: [mem 0xfec11000-0xfed7ffff]
[    0.021095] PM: hibernation: Registered nosave memory: [mem 0xfed80000-0xfed80fff]
[    0.021096] PM: hibernation: Registered nosave memory: [mem 0xfed81000-0xfedb0fff]
[    0.021097] PM: hibernation: Registered nosave memory: [mem 0xfedb1000-0xfedb1fff]
[    0.021098] PM: hibernation: Registered nosave memory: [mem 0xfedb2000-0xfedfffff]
[    0.021098] PM: hibernation: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[    0.021099] PM: hibernation: Registered nosave memory: [mem 0xfee01000-0xffffffff]
[    0.074635] Memory: 3696304K/4024688K available (18432K kernel code, 3267K rwdata, 14476K rodata, 4516K init, 17380K bss, 328124K reserved, 0K cma-reserved)
[    0.125642] Freeing SMP alternatives memory: 48K
[    0.240925] x86/mm: Memory block size: 128MB
[    0.261392] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved as EfiMemoryMappedIO
[    0.879512] Freeing initrd memory: 54016K
[    0.891742] Non-volatile memory driver v1.3
[    1.423919] Freeing unused decrypted memory: 2036K
[    1.425497] Freeing unused kernel image (initmem) memory: 4516K
[    1.427387] Freeing unused kernel image (rodata/data gap) memory: 1908K
[    9.590600] amdgpu 0000:00:01.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
[    9.590752] [drm] amdgpu: 80M of VRAM memory ready
[    9.590755] [drm] amdgpu: 1868M of GTT memory ready.
[    9.704014] [drm] DM_PPLIB:    memory_max_clock: 80000
[    9.704025] [drm] DM_PPLIB:    memory_max_clock: 80000
[    9.704027] [drm] DM_PPLIB: values for Memory clock
[    9.704031] [drm] DM_PPLIB:    memory_max_clock: 80000
[   13.166793] systemd[1]: Listening on systemd-oomd.socket - Userspace Out-Of-Memory (OOM) Killer Socket.

I dont really know exatly what it is all saying, but I find it interesting that a bunch of memory addresses are left in hibernation. Is that the second channel?

There is only 4 G recognized.

Can you boot a F38 live media and see what you get there?

well, I didn’t have a live media with 38 so I downloaded 39 workstation, ran it and basically got the same result, in the hardware description it shows the 8 gb, but in the resources and from dmesg it also shows 3.7 Gb

This is weird.
Can you download a F38 image and see if the issue persists on an older kernel?

https://download.fedoraproject.org/pub/fedora/linux/releases/38/Workstation/x86_64/iso/

I’m suspicious of the video RAM sharing/reservation at first guess – that would be something to check in the BIOS…

But at least I’d check:

dmidecode -t memory

(Should show the full amount since the hwinfo shows it in your screen shot, but worth a check to see if there’s anything odd)

and:

dmesg | grep BIOS

That should get the physical RAM map from the BIOS. Check the usable versus reserved / ACPI / whatnot ranges. If the sum of the usable is the 3GiB or so you see, then the question would be how much is reserved in BIOS and why (which leads back to the vram). If even the BIOS physical map provided in total (usable + reserved + whatnot) is 4GiB or less, definitely look for a BIOS setting… I just can’t imagine what it would be off hand. It almost seems like the system is booting in x32 mode instead of x64 (so it would be capped at 4GiB), but that doesn’t make sense for anything made in the last 10 years or so…

Checking the specs from HP, it shows m.2 slots and 64-bit OS support, so I can’t imagine it is 32-bit only.
CPU isn’t one I’m familiar with either but AMD’s website doesn’t give any sign it is 32-bit only…

So yeah – I’d check the physical RAM map given to the kernel first to at least distinguish between “BIOS issue” and “kernel issue” hopefully.

2 Likes

@dmorris thank you very much for jumping into this adventure as well :slight_smile:
I ran what you suggested and the dmidecode command showed the full 8 GB of ram as expected. However the memory map did show an interesting thing.

Usable memory: aprox 4056 Mb
Reserved Memory: aprox 101 Mb
ACPI Data: 0.75 Mb

So it does look like something in the bios, I will tripple check that there are no 32 bit restrictions or something. In the output from dmidecode it does state that it has a max capacity of 32 GB.

Here is the output, in case you can spot something else:

root@jarvis:/home/cristobal/.local/share130# dmidecode -t memory
# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x001E, DMI type 16, 23 bytes
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: None
        Maximum Capacity: 32 GB
        Error Information Handle: Not Provided
        Number Of Devices: 2

Handle 0x0026, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x001E
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 4 GB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM1
        Bank Locator: ChannelB DIMM1
        Type: DDR3
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 1600 MT/s
        Manufacturer: Samsung
        Serial Number: 94E3EB76
        Asset Tag: NULL
        Part Number: M471B5173QH0-YK0  
        Rank: 1
        Configured Memory Speed: 1600 MT/s
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: Unknown

Handle 0x0021, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x001E
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 4 GB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM3
        Bank Locator: ChannelA DIMM1
        Type: DDR3
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 1600 MT/s
        Manufacturer: Samsung
        Serial Number: 96FDE01E
        Asset Tag: NULL
        Part Number: M471B5173DB0-YK0  
        Rank: 1
        Configured Memory Speed: 1600 MT/s
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: Unknown

root@jarvis:/home/cristobal/.local/share# dmesg | grep BIOS
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable
[    0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000009c6f9fff] usable
[    0.000000] BIOS-e820: [mem 0x000000009c6fa000-0x000000009c6fafff] reserved
[    0.000000] BIOS-e820: [mem 0x000000009c6fb000-0x000000009c804fff] usable
[    0.000000] BIOS-e820: [mem 0x000000009c805000-0x000000009c805fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000009c806000-0x00000000ac267fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000ac268000-0x00000000ac277fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000ac278000-0x00000000b6acefff] usable
[    0.000000] BIOS-e820: [mem 0x00000000b6acf000-0x00000000b78cefff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000b78cf000-0x00000000b7fcefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000b7fcf000-0x00000000b7ffefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000b7fff000-0x00000000b7ffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000c8900000-0x00000000c89fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec10000-0x00000000fec10fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed80000-0x00000000fed80fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fedb1000-0x00000000fedb1fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000013effffff] usable
[    0.000000] efi: ACPI 2.0=0xb7ffe014 SMBIOS=0xb71cb000 ESRT=0xb71b3f98 MOKvar=0xb71b2000 
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: HP HP EliteDesk 705 G2 MINI/805B, BIOS N26 Ver. 02.37 01/02/2019
[    0.099407] BIOS may not properly restore RDRAND after suspend, hiding RDRAND via CPUID. Use rdrand=force to reenable.
[    0.260000] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    0.282293] acpi PNP0A08:00: FADT indicates ASPM is unsupported, using BIOS configuration
[    0.947234] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
[    9.821602] amdgpu 0000:00:01.0: amdgpu: Fetched VBIOS from VFCT
[    9.821608] amdgpu: ATOM BIOS: BR46207.001
[   14.280148] acpi_cpufreq: overriding BIOS provided _PSD data
[   14.589098] kvm_amd: SVM disabled (by BIOS) in MSR_VM_CR on CPU 0

@augenauf I just finished downloading the image, I will test it with 38 and see what happens.

@augenauf Tested it with the live cd of 38 workstation and still only 4 GB.

@dmorris I looked around die BIOS and for the life of me I couldnt find anywhere where there could be any setting limiting the memory or the CPU to 32 bit. I did update the BIOS because I dont think it had ever been updated, but even with that update, nothing changed. Is there soem kind of configuration file somewhere that I have never seen? or the BIOS screen is the only place where any configuration can be done?

Well, it can’t be fully a 32-bit ism since the last usable chunk starts at 4 GiB – it only gives you 1 GiB or so in that range, though.

Odd hole from 0xb7fcefff all the way up to 0xc8900000… that’s 256MiB or so right there… and then why there’s nothing above 0x13effffff…

PCI BAR remapping or video shared memory still seems most likely… let me see if I can find the BIOS guide for that and if there’s anything that stands out.

1 Like

Check the BIOS manual here. First thing to check would be “Built-In Device Options->Video Memory Size” I would think.

Doesn’t look to have any BAR resizing or anything funky… so that’s out. Hmmm…

Only other thing I can think of would be to double check using the page 122 information and run the hardware diagnostics to make sure there’s not bad pages in the DIMMs or something.

1 Like

Hey @steppybug , I think you may have found it. I bough this computer off of Amazon, and it said it was refurbished by an authorized distributor. But now that I opened it up and look closer than before, the Ram that it has isntalled is a samsung model which indeed is 204 pins. However in the HP site, the recomended Ram is from Kingston and it is 240.
I am going to have to get some of that kingston Ram and try it (and fight the refurbisher for it as well).

Will report back once I have changed that

1 Like

nope, it plugs in directly as normal. :man_shrugging:t4:

I tried populating the DIMM 2 slot except I couldnt find it :joy: for some reason there is only 2 slots there, and they are labeled 1 and 3, the documentation says there should be 4, but unless I am really blind or gone mad, there is only 2.

and as far as I know, the processor is from a laptop, so I asume the ram must also be from a a laptop. I will be honest, other than the obvious, I dont know what it means that one is 240 pins and the other 204, are all laptop rams 204? should it be shorter than the 240?

What size is your ZRAM swap?

DDR3 SODIMMs are 204-pin, whereas DDR4 SODIMMs are 240-pin. Your computer only accepts DDR3, from what I can tell. So makes sense that the DDR4 is not working. Though curious how it’s even booting and shown in the GUI.

o.k. that makes sense, however both the Memory and the SODIMMs are 204 pins, I found it on the silkscreen of the motherboard. They are both DDR3 so I think that puts that theory (although a good one) to rest.

I have had it in the past, on a Dell laptop that I wanted to upgrade the ram and bought a 32 GB kit, in theory it was advertised as compatible with the laptop, but when I installed it, (if I remember correctly) it would only recognize one of the cards. After some digging, I found out that apparently Dell needs to see one of the original cards to be happy, then it would recognize the ful 32 GB. long story short, I have a 16 GB card brand new because I had to leave the original 16 gb in. sadly it is DDR4 so I can’t test it on this computer but I am wondering if there could be something like that here.

My Dell (real old) laptop behaves the same way. If I replace it’s 4GB with 8GB (so take out the original 2x2GB sticks and put in 2x4GB other mfg) it only ever recognizes one stick of other vendor mem.

I know it has beena while since there was an update, but just in case anybody ever wonders “what happened with that guy and his wonky RAM?” The issue has been solved. After a deepdive into the internet to find the correct part number from HP, I only found it in the States (of course, as it is discontinued everywhere else). So after about a week of shipping to the UAE I just isntalled it and now my little experimental server is running at glorious 16 GB of RAM.
In the process of solving all of this, I discovered that the exact model that I have, used to ship with only 1x 8 GB module, so the guys that refurbished it changed it for what they thought was equivalent, but it was the wrong part number so It only recognized 1 of them.

Anyways, thank you very much for the help everyone!

1 Like