You are not logged in.
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
If you're not using zram then I suspect your (integrated) video card has grabbed at least 2GiB. Details in the logs, as usual.
"The nation-state domesticates the society in the name of capitalism and alienates the community from its natural foundations."
— Democratic Confederalism, Abdullah Öcalan.
Offline
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
Please don't randomly grep stuff.
Post your complete system journal for the boot:
sudo journalctl -b | curl -F 'file=@-' 0x0.st
Online
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
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.
Online
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
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
Online