web-dev-qa-db-ja.com

MTRRは、N3150の16Gbのメモリすべてをカバーするわけではありません

16Gb(2x8)RAMをAsusN3150i-c(クアッドコアインテルブラスウェルCeleron N3150 SoCを搭載)にインストールし、

[0.000000]警告:BIOSのバグ:CPU MTRRがすべてのメモリをカバーしておらず、2048MBのRAMが失われています。

dmesgおよびcat /proc/meminfo | head -n 1

MemTotal:14213172 kB

このmbとcpuは公式に最大8GBをサポートしているため、最大13.5Gb(memtesterとmemtest86でテスト済み)は問題ないようですが、同様のマザーボードが市場に出回っているため、制限がハードウェアではないことも証明しています。同じSoCを使用し、16Gbのサポートを主張

マシンはXなしでUbuntu14.04LTSを実行しているサーバーであるため、緊急時にコンソールを使用できる限り、GPUサポートはそれほど重要ではありません。 3.13.0-35-generic、3.13.0-83、および4.2.0-34カーネル(すべてLTS)を試しましたが、前者の2つは再起動後にコンソールフォントが破損しているため、後者に固執しています

AsusはこのボードのBIOSアップデートに怠惰です(最初のリリース以来アップデートはまったくありません)ので、OSレベルで実行できることがあるのでしょうか?

MTRRを再配置して、メモリの損失を減らすことはできますか?

ぼくの /proc/mtrr

reg00: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg01: base=0x07cb00000 ( 1995MB), size=    1MB, count=1: uncachable
reg02: base=0x07cc00000 ( 1996MB), size=    4MB, count=1: uncachable
reg03: base=0x07d000000 ( 2000MB), size=   16MB, count=1: uncachable
reg04: base=0x07e000000 ( 2016MB), size=   32MB, count=1: uncachable
reg05: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg06: base=0x200000000 ( 8192MB), size= 8192MB, count=1: write-back

lspci -v

00:00.0 Host bridge: Intel Corporation Device 2280 (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, fast devsel, latency 0
    Kernel driver in use: iosf_mbi_pci

00:02.0 VGA compatible controller: Intel Corporation Device 22b1 (rev 21) (prog-if 00 [VGA controller])
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, fast devsel, latency 0, IRQ 120
    Memory at a0000000 (64-bit, non-prefetchable) [size=16M]
    Memory at 90000000 (64-bit, prefetchable) [size=256M]
    I/O ports at f000 [size=64]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915

00:13.0 SATA controller: Intel Corporation Device 22a3 (rev 21) (prog-if 01 [AHCI 1.0])
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 119
    I/O ports at f060 [size=32]
    Memory at 80301000 (32-bit, non-prefetchable) [size=2K]
    Capabilities: <access denied>
    Kernel driver in use: ahci

00:14.0 USB controller: Intel Corporation Device 22b5 (rev 21) (prog-if 30 [XHCI])
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, medium devsel, latency 0, IRQ 117
    Memory at a1000000 (64-bit, non-prefetchable) [size=64K]
    Capabilities: <access denied>
    Kernel driver in use: xhci_hcd

00:1a.0 Encryption controller: Intel Corporation Device 2298 (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, fast devsel, latency 0, IRQ 121
    Memory at 80100000 (32-bit, non-prefetchable) [size=1M]
    Memory at 80000000 (32-bit, non-prefetchable) [size=1M]
    Capabilities: <access denied>
    Kernel driver in use: mei_txe

00:1c.0 PCI bridge: Intel Corporation Device 22c8 (rev 21) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    I/O behind bridge: 00001000-00001fff
    Memory behind bridge: 80400000-805fffff
    Prefetchable memory behind bridge: 0000000080600000-00000000807fffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1c.2 PCI bridge: Intel Corporation Device 22cc (rev 21) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
    I/O behind bridge: 0000e000-0000efff
    Memory behind bridge: 80200000-802fffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1f.0 ISA bridge: Intel Corporation Device 229c (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, medium devsel, latency 0
    Capabilities: <access denied>
    Kernel driver in use: lpc_ich

00:1f.3 SMBus: Intel Corporation Device 2292 (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: medium devsel, IRQ 11
    Memory at 80300000 (32-bit, non-prefetchable) [size=32]
    I/O ports at f040 [size=32]
    Capabilities: <access denied>

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
    Subsystem: ASUSTeK Computer Inc. Device 8677
    Flags: bus master, fast devsel, latency 0, IRQ 118
    I/O ports at e000 [size=256]
    Memory at 80204000 (64-bit, non-prefetchable) [size=4K]
    Memory at 80200000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: r8169
4
Vasfed

MTRRの編集は役に立たなかったことが判明したので、それを必要とする人にとっては、これを行うことができます。

/bin/echo "disable=1" >| /proc/mtrr
/bin/echo "disable=2" >| /proc/mtrr
/bin/echo "base=0x07c800000 size=0x800000 type=uncachable" >| /proc/mtrr
/bin/echo "base=0x400000000 size=0x80000000 type=write-back" >| /proc/mtrr

Asusはついに更新されたBIOS(0507)を思いついた。それを更新し、新しいカーネル4.4.0-28もインストールし、システムがほぼすべてのRAMを認識するようになりました。

cat /proc/meminfo | grep Mem
MemTotal:       16275812 kB
MemFree:        15815868 kB
MemAvailable:   15849708 kB

cat /proc/mtrr
reg00: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg02: base=0x0b8000000 ( 2944MB), size=  128MB, count=1: uncachable
reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg04: base=0x200000000 ( 8192MB), size= 8192MB, count=1: write-back
reg05: base=0x400000000 (16384MB), size= 1024MB, count=1: write-back
reg06: base=0x0d0000000 ( 3328MB), size=  256MB, count=1: write-through
1
Vasfed