一个诡异的问题,Deepin总是少识别2GB内存
Tofloor
poster avatar
tsingjyujing
deepin
2019-02-28 20:57
Author
晕死,进入BIOS可以识别16G内存(2根8G),但是在系统里就只显示14GB。
同样的,我插入一根8GB一根4GB,理应识别出12GB内存,但是进入系统以后只有10GB。

请教各位大侠有没有遇到这种情况?





  1. ➜  ~ sudo dmidecode -t memory   
  2. [sudo] password for yuanyifan:
  3. # dmidecode 3.1
  4. Getting SMBIOS data from sysfs.
  5. SMBIOS 2.7 present.

  6. Handle 0x000A, DMI type 16, 23 bytes
  7. Physical Memory Array
  8.         Location: System Board Or Motherboard
  9.         Use: System Memory
  10.         Error Correction Type: None
  11.         Maximum Capacity: 16 GB
  12.         Error Information Handle: Not Provided
  13.         Number Of Devices: 2

  14. Handle 0x000B, DMI type 17, 34 bytes
  15. Memory Device
  16.         Array Handle: 0x000A
  17.         Error Information Handle: Not Provided
  18.         Total Width: 64 bits
  19.         Data Width: 64 bits
  20.         Size: 8192 MB
  21.         Form Factor: SODIMM
  22.         Set: None
  23.         Locator: ChannelA-DIMM0
  24.         Bank Locator: BANK 0
  25.         Type: DDR3
  26.         Type Detail: Synchronous
  27.         Speed: 1333 MT/s
  28.         Manufacturer: Samsung
  29.         Serial Number: 19AD0E2E
  30.         Asset Tag: None
  31.         Part Number: M471B5273DH0-CH9  
  32.         Rank: Unknown
  33.         Configured Clock Speed: 1333 MT/s

  34. Handle 0x000C, DMI type 17, 34 bytes
  35. Memory Device
  36.         Array Handle: 0x000A
  37.         Error Information Handle: Not Provided
  38.         Total Width: 64 bits
  39.         Data Width: 64 bits
  40.         Size: 8192 MB
  41.         Form Factor: SODIMM
  42.         Set: None
  43.         Locator: ChannelB-DIMM0
  44.         Bank Locator: BANK 2
  45.         Type: DDR3
  46.         Type Detail: Synchronous
  47.         Speed: 1333 MT/s
  48.         Manufacturer: Kingston
  49.         Serial Number: 121C2419
  50.         Asset Tag: None
  51.         Part Number: 99U5428-020.A00LF
  52.         Rank: Unknown
  53.         Configured Clock Speed: 1333 MT/s
Copy the Code
  1. ➜  ~ cat /proc/meminfo
  2. MemTotal:       14692756 kB
  3. MemFree:         9060540 kB
  4. MemAvailable:   11946444 kB
  5. Buffers:          214976 kB
  6. Cached:          3462144 kB
  7. SwapCached:            0 kB
  8. Active:          2338412 kB
  9. Inactive:        2906280 kB
  10. Active(anon):    1577656 kB
  11. Inactive(anon):   582528 kB
  12. Active(file):     760756 kB
  13. Inactive(file):  2323752 kB
  14. Unevictable:        1388 kB
  15. Mlocked:            1388 kB
  16. SwapTotal:       4194300 kB
  17. SwapFree:        4194300 kB
  18. Dirty:                 0 kB
  19. Writeback:            48 kB
  20. AnonPages:       1568964 kB
  21. Mapped:          1137732 kB
  22. Shmem:            592620 kB
  23. Slab:             221140 kB
  24. SReclaimable:     106168 kB
  25. SUnreclaim:       114972 kB
  26. KernelStack:       14816 kB
  27. PageTables:        66736 kB
  28. NFS_Unstable:          0 kB
  29. Bounce:                0 kB
  30. WritebackTmp:          0 kB
  31. CommitLimit:    11540676 kB
  32. Committed_AS:    9635340 kB
  33. VmallocTotal:   34359738367 kB
  34. VmallocUsed:           0 kB
  35. VmallocChunk:          0 kB
  36. HardwareCorrupted:     0 kB
  37. AnonHugePages:         0 kB
  38. ShmemHugePages:        0 kB
  39. ShmemPmdMapped:        0 kB
  40. CmaTotal:              0 kB
  41. CmaFree:               0 kB
  42. HugePages_Total:       0
  43. HugePages_Free:        0
  44. HugePages_Rsvd:        0
  45. HugePages_Surp:        0
  46. Hugepagesize:       2048 kB
  47. DirectMap4k:      241724 kB
  48. DirectMap2M:    14776320 kB
Copy the Code


Reply Favorite View the author
All Replies
avatar
justforlxz
deepin
2019-02-28 21:12
#1
有一部分内存被用作显存了吧。

grep -i memory /var/log/Xorg.0.log

看一下结果
Reply View the author
avatar
justforlxz
deepin
2019-02-28 21:14
#2
sudo lspci -v 也可以看到VGA部分,intel显卡使用了一部分,我这里是

00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04) (prog-if 00 [VGA controller])
        Subsystem: CLEVO/KAPOK Computer Device 850a
        Flags: bus master, fast devsel, latency 0, IRQ 126
        Memory at dd000000 (64-bit, non-prefetchable) [size=16M]
        Memory at a0000000 (64-bit, prefetchable) [size=512M]

我的可用内存是15.43G
Reply View the author
Comments
snyh1010
2019-03-01 17:04
这里只是PCI*设备*的IO空间和Memeory空间范围,这里的值和显存大小并没有直接关系,甚至不保证空间内的所有地址都可以访问
avatar
tsingjyujing
deepin
2019-03-01 06:48
#3
https://bbs.deepin.org/post/175120
sudo lspci -v 也可以看到VGA部分,intel显卡使用了一部分,我这里是

00:02.0 VGA compatible controller: ...

谢谢你的回复,应该不是这个问题,因为:
  1. ➜  ~ sudo lspci -v|grep Memory
  2.         Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
  3.         Memory at e0000000 (64-bit, prefetchable) [size=256M]
  4.         Memory at f3600000 (64-bit, non-prefetchable) [size=64K]
  5.         Memory at f3615000 (64-bit, non-prefetchable) [size=16]
  6.         Memory at f361a000 (32-bit, non-prefetchable) [size=1K]
  7.         Memory at f3610000 (64-bit, non-prefetchable) [size=16K]
  8.         Memory behind bridge: f2e00000-f35fffff
  9.         Memory behind bridge: f2d00000-f2dfffff
  10.         Memory behind bridge: f2500000-f2cfffff
  11.         Memory behind bridge: f1d00000-f24fffff
  12.         Memory at f3619000 (32-bit, non-prefetchable) [size=1K]
  13.         Memory at f3618000 (32-bit, non-prefetchable) [size=2K]
  14.         Memory at f3614000 (64-bit, non-prefetchable) [size=256]
  15.         Memory at f2e00000 (32-bit, non-prefetchable) [size=4K]
  16.         Memory at f2d00000 (64-bit, non-prefetchable) [size=16K]
  17.         Memory at f1404000 (64-bit, prefetchable) [size=4K]
  18.         Memory at f1400000 (64-bit, prefetchable) [size=16K]
Copy the Code
Reply View the author
avatar
tsingjyujing
deepin
2019-03-01 06:54
#4
https://bbs.deepin.org/post/175120
有一部分内存被用作显存了吧。

grep -i memory /var/log/Xorg.0.log

谢谢你的建议,不过应该不是这个问题:
  1. ➜  ~ cat  /var/log/Xorg.0.log|grep memory
  2. ➜  ~ cat  /var/log/Xorg.0.log|grep Mem   
  3. [    38.629] (--) PCI:*(0@0:2:0) 8086:0166:17aa:5001 rev 9, Mem @ 0xf0000000/4194304, 0xe0000000/268435456, I/O @ 0x00005000/64, BIOS @ 0x????????/131072
Copy the Code
Reply View the author
avatar
justforlxz
deepin
2019-03-01 07:27
#5
https://bbs.deepin.org/post/175120
谢谢你的建议,不过应该不是这个问题:

大佬,grep区分大小写的,用-i来禁用..
Reply View the author
avatar
gypublic2007
deepin
2019-03-01 12:46
#6
本帖最后由 gypublic2007 于 2019-3-1 05:07 编辑

从模块上来看,两个8G模块均已经正确识别
MemTotal:       14692756 kB
从这里看,物理内存减去预留位和内核使用的内存,就是14G多一点。那么还有1G多到哪里去了呢?
可能是BIOS里面的什么设备给占用掉了,BIOS有个MAP表,报给内核多少内存,内核就能用多少内存

一般占用内存的十有八九都是PCIE设备,你检查一下是不是划分给显卡作为共享内存了。

我看你上面核显就只用了256MB内存,这不科学啊。

虽然是64位系统,我也不知道有没有用,你下载内核源码,重新编译内核,把PAE选项设置为64G再试试,看看能不能解决。


我不确定这有没有用,这是我能想到的唯一的解决办法了。因为我猜想可能是内存中有一部分为硬件保留的内存没有被有效释放,虽然是64位系统,试试吧。
Reply View the author
avatar
snyh1010
deepin
2019-03-01 17:10
#7
实际内存缺到哪里去了,并不好查找。  先去BIOS里看看,台式机的BIOS一般会设置保留多少给集显使用。(这部分内存内核压根就无法感知到,因为e820汇报这部分不可用了)

然后显卡驱动或者什么其他的驱动,在内核初始化时也可以申请预留一部分内存空间,这部分后期也是无法再作为可用内存空间的。

x86架构下,看dmesg刚开始输出的e820部分,兴许可以找到为啥内存少了。  这里汇报的就是BIOS告诉内核CPU可用的内存空间范围(内存条只是其中的一部分)

以及/proc/iomem
Reply View the author
avatar
listenerri
deepin
2019-03-01 23:17
#8
过来学习
Reply View the author
avatar
BLumia
deepin
2019-03-02 00:03
#9
过来学习
Reply View the author
avatar
tsingjyujing
deepin
2019-03-03 08:52
#10
https://bbs.deepin.org/post/175120
从模块上来看,两个8G模块均已经正确识别
MemTotal:       14692756 kB
从这里看,物理内存减去预留位和内 ...

Deepin如果使用的是Debian的内核的话,可能未必和内核有关系。我这个电脑安装了Windows,移动硬盘上还有一个Linux(Ubuntu),都能正确识别内存,仅仅是Deepin不行,我想问题可能没有这么深。
Reply View the author
avatar
189******23
deepin
2019-03-03 20:31
#11
deepin没有自己的内核吧,这是一个神奇的问题。。。。
你可以试着用同一个版本的内核再看一下meminfo
Reply View the author