You are not logged in.

#1 2024-09-27 09:25:12

gay
Member
Registered: 2012-12-16
Posts: 93

free only shows 25G of 32G memory - is that normal?

I have a laptop with 4x8G memory (see dmidecode output below).

However, only 25G of those seem to show up, as shown by free:

$ free -g
               total        used        free      shared  buff/cache   available
Mem:              25           6           3           0          15          18
Swap:             31           0          31

...and accordingly by top and in /proc/meminfo

$ top
...
MiB Mem :  25854.6 total,   3347.9 free,   7147.7 used,  15918.1 buff/cache     
MiB Swap:  32768.0 total,  32767.5 free,      0.5 used.  18706.9 avail Mem 
...
$ cat /proc/meminfo 
MemTotal:       26475116 kB
...

I do not think I have ever experienced that on other computers before. I'm not sure if it always perfectly lined up, but having almost 25% less memory seems very odd to me.

At the same time, the hardware seems to show up correctly:

$ sudo dmidecode -t Memory
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.5.0 present.

Handle 0x0010, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 64 GB
	Error Information Handle: 0x000F
	Number Of Devices: 4

Handle 0x0013, DMI type 17, 92 bytes
Memory Device
	Array Handle: 0x0010
	Error Information Handle: 0x0012
	Total Width: 32 bits
	Data Width: 32 bits
	Size: 8 GB
	Form Factor: Other
	Set: None
	Locator: DIMM 0
	Bank Locator: P0 CHANNEL A
	Type: LPDDR5
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 7500 MT/s
	Manufacturer: Micron Technology
	Serial Number: 00000000
	Asset Tag: Not Specified
	Part Number: MT62F2G32D4DS-026 WT
	Rank: 2
	Configured Memory Speed: 6400 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V
	Memory Technology: DRAM
	Memory Operating Mode Capability: Volatile memory
	Firmware Version: Unknown
	Module Manufacturer ID: Bank 1, Hex 0x2C
	Module Product ID: Unknown
	Memory Subsystem Controller Manufacturer ID: Unknown
	Memory Subsystem Controller Product ID: Unknown
	Non-Volatile Size: None
	Volatile Size: 8 GB
	Cache Size: None
	Logical Size: None

Handle 0x0016, DMI type 17, 92 bytes
Memory Device
	Array Handle: 0x0010
	Error Information Handle: 0x0015
	Total Width: 32 bits
	Data Width: 32 bits
	Size: 8 GB
	Form Factor: Other
	Set: None
	Locator: DIMM 0
	Bank Locator: P0 CHANNEL B
	Type: LPDDR5
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 7500 MT/s
	Manufacturer: Micron Technology
	Serial Number: 00000000
	Asset Tag: Not Specified
	Part Number: MT62F2G32D4DS-026 WT
	Rank: 2
	Configured Memory Speed: 6400 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V
	Memory Technology: DRAM
	Memory Operating Mode Capability: Volatile memory
	Firmware Version: Unknown
	Module Manufacturer ID: Bank 1, Hex 0x2C
	Module Product ID: Unknown
	Memory Subsystem Controller Manufacturer ID: Unknown
	Memory Subsystem Controller Product ID: Unknown
	Non-Volatile Size: None
	Volatile Size: 8 GB
	Cache Size: None
	Logical Size: None

Handle 0x0019, DMI type 17, 92 bytes
Memory Device
	Array Handle: 0x0010
	Error Information Handle: 0x0018
	Total Width: 32 bits
	Data Width: 32 bits
	Size: 8 GB
	Form Factor: Other
	Set: None
	Locator: DIMM 0
	Bank Locator: P0 CHANNEL C
	Type: LPDDR5
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 7500 MT/s
	Manufacturer: Micron Technology
	Serial Number: 00000000
	Asset Tag: Not Specified
	Part Number: MT62F2G32D4DS-026 WT
	Rank: 2
	Configured Memory Speed: 6400 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V
	Memory Technology: DRAM
	Memory Operating Mode Capability: Volatile memory
	Firmware Version: Unknown
	Module Manufacturer ID: Bank 1, Hex 0x2C
	Module Product ID: Unknown
	Memory Subsystem Controller Manufacturer ID: Unknown
	Memory Subsystem Controller Product ID: Unknown
	Non-Volatile Size: None
	Volatile Size: 8 GB
	Cache Size: None
	Logical Size: None

Handle 0x001C, DMI type 17, 92 bytes
Memory Device
	Array Handle: 0x0010
	Error Information Handle: 0x001B
	Total Width: 32 bits
	Data Width: 32 bits
	Size: 8 GB
	Form Factor: Other
	Set: None
	Locator: DIMM 0
	Bank Locator: P0 CHANNEL D
	Type: LPDDR5
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 7500 MT/s
	Manufacturer: Micron Technology
	Serial Number: 00000000
	Asset Tag: Not Specified
	Part Number: MT62F2G32D4DS-026 WT
	Rank: 2
	Configured Memory Speed: 6400 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V
	Memory Technology: DRAM
	Memory Operating Mode Capability: Volatile memory
	Firmware Version: Unknown
	Module Manufacturer ID: Bank 1, Hex 0x2C
	Module Product ID: Unknown
	Memory Subsystem Controller Manufacturer ID: Unknown
	Memory Subsystem Controller Product ID: Unknown
	Non-Volatile Size: None
	Volatile Size: 8 GB
	Cache Size: None
	Logical Size: None

Could this nevertheless be a hardware problem?
If so, how should I go about diagnosing why this is and how it could be solved?
Or is this actually normal?


We are exactly the people our parents always warned us about.

Offline

#2 2024-09-27 09:45:55

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,429
Website

Re: free only shows 25G of 32G memory - is that normal?

If you're not using zram then I suspect your (integrated) video card has grabbed at least 2GiB. Details in the logs, as usual.


Para todos todo, para nosotros nada

Offline

#3 2024-09-28 00:08:11

gay
Member
Registered: 2012-12-16
Posts: 93

Re: free only shows 25G of 32G memory - is that normal?

Thanks for this suggestion. I didn't know GPUs do that. I always thought modern GPUs have their own VRAM in addition to the computer's main RAM.

These seem to be the relevant lines from journalctl (more journalctl below, in case I'm missing something):

Sep 26 02:25:16 archlinux kernel: [drm] Detected VRAM RAM=6144M, BAR=6144M
Sep 26 02:25:16 archlinux kernel: [drm] RAM width 128bits LPDDR5
Sep 26 02:25:16 archlinux kernel: [drm] amdgpu: 6144M of VRAM memory ready
Sep 26 02:25:16 archlinux kernel: [drm] amdgpu: 12927M of GTT memory ready.
Sep 26 02:25:16 archlinux kernel: [drm] GART: num cpu pages 131072, num gpu pages 131072
Sep 26 02:25:16 archlinux kernel: [drm] PCIE GART of 512M enabled (table at 0x000000817FD00000).

Further info

$ glxinfo | grep -E -i "Memory|Device"
    Device: AMD Radeon Graphics (radeonsi, gfx1103_r1, LLVM 18.1.8, DRM 3.57, 6.10.10-arch1-1) (0x1900)
    Video memory: 6144MB
    Unified memory: no
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 4990 MB, largest block: 4990 MB
    VBO free aux. memory - total: 12779 MB, largest block: 12779 MB
    Texture free memory - total: 4990 MB, largest block: 4990 MB
    Texture free aux. memory - total: 12779 MB, largest block: 12779 MB
    Renderbuffer free memory - total: 4990 MB, largest block: 4990 MB
    Renderbuffer free aux. memory - total: 12779 MB, largest block: 12779 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 6144 MB
    Total available memory: 19071 MB
    Currently available dedicated video memory: 4990 MB
    GL_AMD_multi_draw_indirect, GL_AMD_pinned_memory, 
    GL_EXT_framebuffer_sRGB, GL_EXT_memory_object, GL_EXT_memory_object_fd, 
    GL_NVX_gpu_memory_info, GL_NV_alpha_to_coverage_dither_control, 
    GL_AMD_pinned_memory, GL_AMD_query_buffer_object, 
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, GL_EXT_memory_object, 
    GL_EXT_memory_object_fd, GL_EXT_multi_draw_arrays, 
    GL_MESA_window_pos, GL_NVX_gpu_memory_info, GL_NV_ES1_1_compatibility, 
    GL_EXT_instanced_arrays, GL_EXT_map_buffer_range, GL_EXT_memory_object, 
    GL_EXT_memory_object_fd, GL_EXT_multi_draw_arrays, 
$ cat /sys/class/drm/card1/device/mem_info_vram_total 
6442450944
$ cat /sys/class/drm/card1/device/mem_info_vram_used 
1233788928
$ cat /sys/class/drm/card1/device/mem_info_gtt_total 
13555257344
$ cat /sys/class/drm/card1/device/mem_info_gtt_used 
144412672

I'm guessing, VRAM is the GPU's own RAM separate from my 4x8=32G RAM?
Or is it actually part of the main RAM.

I don't really understand what it means with 13G GTT memory. This couldn't be what it grabs from the main RAM since it's more than is missing.

But the sum of VRAM and GTT is the 19071M total available memory from GL_NVX_gpu_memory_info.

More details from journalctl:

$ journalctl -xb
...
Sep 26 02:25:16 archlinux kernel: [drm] amdgpu kernel modesetting enabled.
Sep 26 02:25:16 archlinux kernel: amdgpu: Virtual CRAT table created for CPU
Sep 26 02:25:16 archlinux kernel: amdgpu: Topology: Add CPU node
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: enabling device (0006 -> 0007)
Sep 26 02:25:16 archlinux kernel: [drm] initializing kernel modesetting (IP DISCOVERY 0x1002:0x1900 0x2014:0x8001 0x06).
Sep 26 02:25:16 archlinux kernel: [drm] register mmio base: 0xFCB00000
Sep 26 02:25:16 archlinux kernel: [drm] register mmio size: 524288
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 0 <soc21_common>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 1 <gmc_v11_0>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 2 <ih_v6_0>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 3 <psp>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 4 <smu>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 5 <dm>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 6 <gfx_v11_0>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 7 <sdma_v6_0>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 8 <vcn_v4_0>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 9 <jpeg_v4_0>
Sep 26 02:25:16 archlinux kernel: [drm] add ip block number 10 <mes_v11_0>
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: Fetched VBIOS from VFCT
Sep 26 02:25:16 archlinux kernel: amdgpu: ATOM BIOS: 113-PHXGENERIC-001
Sep 26 02:25:16 archlinux kernel: [drm] VCN(0) encode/decode are enabled in VM mode
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: [drm:jpeg_v4_0_early_init [amdgpu]] JPEG decode is enabled in VM mode
Sep 26 02:25:16 archlinux kernel: Console: switching to colour dummy device 80x25
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: vgaarb: deactivate vga console
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature enabled
Sep 26 02:25:16 archlinux kernel: [drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: VRAM: 6144M 0x0000008000000000 - 0x000000817FFFFFFF (6144M used)
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: GART: 512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
Sep 26 02:25:16 archlinux kernel: [drm] Detected VRAM RAM=6144M, BAR=6144M
Sep 26 02:25:16 archlinux kernel: [drm] RAM width 128bits LPDDR5
Sep 26 02:25:16 archlinux kernel: [drm] amdgpu: 6144M of VRAM memory ready
Sep 26 02:25:16 archlinux kernel: [drm] amdgpu: 12927M of GTT memory ready.
Sep 26 02:25:16 archlinux kernel: [drm] GART: num cpu pages 131072, num gpu pages 131072
Sep 26 02:25:16 archlinux kernel: [drm] PCIE GART of 512M enabled (table at 0x000000817FD00000).
Sep 26 02:25:16 archlinux kernel: [drm] Loading DMUB firmware via PSP: version=0x08004300
Sep 26 02:25:16 archlinux kernel: [drm] Found VCN firmware Version ENC: 1.22 DEC: 8 VEP: 0 Revision: 3
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: Will use PSP to load VCN firmware
Sep 26 02:25:16 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: reserve 0x4000000 from 0x8178000000 for PSP TMR
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: RAS: optional ras ta ucode is not available
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: RAP: optional rap ta ucode is not available
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: SMU is initialized successfully!
Sep 26 02:25:17 archlinux kernel: [drm] Seamless boot condition check passed
Sep 26 02:25:17 archlinux kernel: [drm] Display Core v3.2.281 initialized on DCN 3.1.4
Sep 26 02:25:17 archlinux kernel: [drm] DP-HDMI FRL PCON supported
Sep 26 02:25:17 archlinux kernel: [drm] DMUB hardware initialized: version=0x08004300
Sep 26 02:25:17 archlinux kernel: [drm] PSR support 1, DC PSR ver 1, sink PSR ver 4 DPCD caps 0x3a su_y_granularity 4
Sep 26 02:25:17 archlinux kernel: [drm] kiq ring mec 3 pipe 1 q 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: [drm:jpeg_v4_0_hw_init [amdgpu]] JPEG decode initialized successfully.
Sep 26 02:25:17 archlinux kernel: kfd kfd: amdgpu: Allocated 3969056 bytes on gart
Sep 26 02:25:17 archlinux kernel: kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
Sep 26 02:25:17 archlinux kernel: amdgpu: Virtual CRAT table created for GPU
Sep 26 02:25:17 archlinux kernel: amdgpu: Topology: Add dGPU node [0x1900:0x1002]
Sep 26 02:25:17 archlinux kernel: kfd kfd: amdgpu: added device 1002:1900
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: SE 1, SH per SE 2, CU per SH 6, active_cu_number 12
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 1 on hub 8
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
Sep 26 02:25:17 archlinux kernel: [drm] ring gfx_32768.1.1 was added
Sep 26 02:25:17 archlinux kernel: [drm] ring compute_32768.2.2 was added
Sep 26 02:25:17 archlinux kernel: [drm] ring sdma_32768.3.3 was added
Sep 26 02:25:17 archlinux kernel: [drm] ring gfx_32768.1.1 ib test pass
Sep 26 02:25:17 archlinux kernel: [drm] ring compute_32768.2.2 ib test pass
Sep 26 02:25:17 archlinux kernel: [drm] ring sdma_32768.3.3 ib test pass
Sep 26 02:25:17 archlinux kernel: amdgpu 0000:03:00.0: amdgpu: Runtime PM not available
Sep 26 02:25:17 archlinux kernel: [drm] Initialized amdgpu 3.57.0 20150101 for 0000:03:00.0 on minor 1
Sep 26 02:25:17 archlinux kernel: fbcon: amdgpudrmfb (fb0) is primary device
Sep 26 02:25:17 archlinux kernel: [drm] DSC precompute is not needed.
...

Grep'ing journalctl for "memory" doesn't really yield anything interesting besides some statements like this:

...
Sep 26 02:25:15 archlinux kernel: ACPI: Reserving SSDT table memory at [mem 0xd7a3a000-0xd7a438bc]
...
Sep 26 02:25:15 archlinux kernel: Early memory node ranges
...
Sep 26 02:25:15 archlinux kernel: PM: hibernation: Registered nosave memory: [mem 0xcd998000-0xcd998fff]
...

...and some statements about initrd memory and kernal memory, both of which are much too small to have a big effect.

Xorg.0.log doesn't contain anything about memory.


We are exactly the people our parents always warned us about.

Offline

#4 2024-09-28 07:03:08

seth
Member
Registered: 2012-09-03
Posts: 59,718

Re: free only shows 25G of 32G memory - is that normal?

Please don't randomly grep stuff.
Post your complete system journal for the boot:

sudo journalctl -b | curl -F 'file=@-' 0x0.st

Offline

#5 2024-09-28 09:03:19

cryptearth
Member
Registered: 2024-02-03
Posts: 1,072

Re: free only shows 25G of 32G memory - is that normal?

you're using a laptop (an important info which you should had given in the initial post) - and in most mobile devices gpus don't have thier own dedicated vram but share from main ram
also most mobile platforms come with two gpus: an cpu igpu for light workload like desktop and a second more powerful 3d focus gpu which some magic happening between them to connect them both to the same display
so what you see is totally normal - both the igpu as well as the dgpu share main ram

Offline

#6 2024-09-28 12:41:14

seth
Member
Registered: 2012-09-03
Posts: 59,718

Re: free only shows 25G of 32G memory - is that normal?

The OP wrote:

I have a laptop with 4x8G memory (see dmidecode output below).

I always thought modern GPUs have their own VRAM in addition to the computer's main RAM.

This isn't a "modern" things, graphics cards always had their own VRAM - this is very much down to the specific hardware.
But you've 6GB VRAM, you're missing ~6GB RAM, so the most likely answer is that you've a shared memory configuration. You also might be able to adjust the VRAM dedication in the BIOS/UEFI.

Offline

#7 2024-09-30 08:05:24

gay
Member
Registered: 2012-12-16
Posts: 93

Re: free only shows 25G of 32G memory - is that normal?

Thanks; sorry for not posting the full journal for the boot procedure; it's here.

Yes, it is a laptop; I thought I said so in the initial post. It is a Tuxedo Pulse 14 (TUXEDO Pulse 14 Gen4/R14FA2, BIOS 12.06 05/30/2024, according to journalctl).

If I understand correctly, it seems increasingly likely that my missing 6G are, in fact the 6G VRAM.

Thanks very much. I'll take a look at the BIOS later.


We are exactly the people our parents always warned us about.

Offline

#8 2024-09-30 13:23:44

seth
Member
Registered: 2012-09-03
Posts: 59,718

Re: free only shows 25G of 32G memory - is that normal?

Sep 26 02:25:15 archlinux kernel: Memory: 26388616K/27065292K available (18432K kernel code, 2177K rwdata, 13440K rodata, 3436K init, 3484K bss, 676416K reserved, 0K cma-reserved)

The OS only ever sees shy of 26GB

Sep 26 02:25:15 archlinux kernel: pci 0000:03:00.0: [1002:1900] type 00 class 0x030000 PCIe Legacy Endpoint
Sep 26 02:25:16 archlinux kernel: amdgpu: ATOM BIOS: 113-PHXGENERIC-001
Sep 26 02:25:16 archlinux kernel: [drm] amdgpu: 6144M of VRAM memory ready

That's the only GPU and AMD Phoenix3 is an APU and while I don't know whether or how to control this on linux, it apparently allows the OS to redistribute RAM at runtime, https://www.theverge.com/2024/9/11/2424 … int-ai-300

Offline

Board footer

Powered by FluxBB