web-dev-qa-db-ja.com

「メモリ不足がメモリ不足で検出されました」カーネルメッセージ?

メモリ不足でメモリ破損が検出されましたメッセージが表示されます。私はそれについて読みました ここ 、しかし私は本当に議論から何も作ることができないと思います。これは確かに一時停止/再開したときに発生しますが、同様の問題が発生した他のユーザーとは異なり、broadcom wifiカードを持っていません。これはすべてマーベルイーサネットで、Wi-Fiはありません。

これは次のものを備えたデスクトップタワーです。

Linux gentoomyuser3x86_64 3.10.25-gentoo#1 SMP 2014 x86_64 Intel(R)Core(TM)2 Quad CPU Q6600 @ 2.40GHz GenuineIntel GNU/Linux

ログの出力は次のとおりです。

[12960.735034] Corrupted low memory at ffff88000000fff0 (fff0 phys) = 40000000000000
[12960.735035] Corrupted low memory at ffff88000000fff8 (fff8 phys) = 250c60840020
[12960.735036] ------------[ cut here ]------------
[12960.735042] WARNING: at Arch/x86/kernel/check.c:140 check_for_bios_corruption+0x10f/0x120()
[12960.735043] Memory corruption detected in low memory
[12960.735056] Modules linked in: nouveau cfbfillrect cfbimgblt video mxm_wmi wmi cfbcopyarea ttm fbcon bitblit softcursor font tileblit drm_kms_helper backlight fb fbdev Fuse
[12960.735060] CPU: 0 PID: 9096 Comm: kworker/0:1 Not tainted 3.10.25-gentoo #1
[12960.735061] Hardware name: System manufacturer Maximus Formula/Maximus Formula, BIOS 1403    09/10/2009
[12960.735064] Workqueue: events check_corruption
[12960.735068]  0000000000000009 ffff8801165fdcf8 ffffffff8157431b ffff8801165fdd38
[12960.735070]  ffffffff81045e9b 0000000000000000 0000000000000000 ffff880000010000
[12960.735073]  ffffffff819b20b0 0000000000000001 ffff880000000000 ffff8801165fdd98
[12960.735074] Call Trace:
[12960.735079]  [<ffffffff8157431b>] dump_stack+0x19/0x1b
[12960.735082]  [<ffffffff81045e9b>] warn_slowpath_common+0x6b/0xa0
[12960.735085]  [<ffffffff81045f71>] warn_slowpath_fmt+0x41/0x50
[12960.735087]  [<ffffffff8102bc2f>] check_for_bios_corruption+0x10f/0x120
[12960.735090]  [<ffffffff8102bc49>] check_corruption+0x9/0x40
[12960.735094]  [<ffffffff81061f8f>] process_one_work+0x17f/0x420
[12960.735096]  [<ffffffff81062679>] worker_thread+0x119/0x370
[12960.735099]  [<ffffffff81062560>] ? rescuer_thread+0x2f0/0x2f0
[12960.735102]  [<ffffffff81068c4b>] kthread+0xbb/0xc0
[12960.735105]  [<ffffffff81068b90>] ? kthread_create_on_node+0x120/0x120
[12960.735109]  [<ffffffff815819ac>] ret_from_fork+0x7c/0xb0
[12960.735111]  [<ffffffff81068b90>] ? kthread_create_on_node+0x120/0x120
[12960.735113] ---[ end trace a3687665afd39e38 ]---

そして、必要に応じて、詳細なlspci -vおよびいくつかのlshw出力を使用して、セットアップをよりよく理解します。

00:00.0 Host bridge: Intel Corporation 82X38/X48 Express DRAM Controller (rev 01)
    Subsystem: ASUSTeK Computer Inc. Device 8295
    Flags: bus master, fast devsel, latency 0
    Capabilities: [e0] Vendor Specific Information: Len=0c <?>

00:06.0 PCI bridge: Intel Corporation 82X38/X48 Express Host-Secondary PCI Express Bridge (rev 01) (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: 0000d000-0000dfff
    Memory behind bridge: fd000000-feafffff
    Prefetchable memory behind bridge: 00000000f0000000-00000000f9ffffff
    Capabilities: [88] Subsystem: Intel Corporation Device 0000
    Capabilities: [80] Power Management version 3
    Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
    Capabilities: [a0] Express Root Port (Slot+), MSI 00
    Capabilities: [100] Virtual Channel
    Capabilities: [140] Root Complex Link
    Kernel driver in use: pcieport

00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02) (prog-if 00 [UHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 16
    I/O ports at c800 [size=32]
    Capabilities: [50] PCI Advanced Features
    Kernel driver in use: uhci_hcd

00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02) (prog-if 00 [UHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 21
    I/O ports at c880 [size=32]
    Capabilities: [50] PCI Advanced Features
    Kernel driver in use: uhci_hcd

00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02) (prog-if 00 [UHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 18
    I/O ports at cc00 [size=32]
    Capabilities: [50] PCI Advanced Features
    Kernel driver in use: uhci_hcd

00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02) (prog-if 20 [EHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 18
    Memory at fcfffc00 (32-bit, non-prefetchable) [size=1K]
    Capabilities: [50] Power Management version 2
    Capabilities: [58] Debug port: BAR=1 offset=00a0
    Capabilities: [98] PCI Advanced Features
    Kernel driver in use: ehci-pci

00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
    Subsystem: ASUSTeK Computer Inc. Device 8277
    Flags: bus master, fast devsel, latency 0, IRQ 45
    Memory at fcff8000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [50] Power Management version 2
    Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
    Capabilities: [100] Virtual Channel
    Capabilities: [130] Root Complex Link
    Kernel driver in use: snd_hda_intel

00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
    I/O behind bridge: 00001000-00001fff
    Memory behind bridge: fa000000-fa3fffff
    Prefetchable memory behind bridge: 00000000fbf00000-00000000fbffffff
    Capabilities: [40] Express Root Port (Slot+), MSI 00
    Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
    Capabilities: [90] Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Capabilities: [a0] Power Management version 2
    Capabilities: [100] Virtual Channel
    Capabilities: [180] Root Complex Link
    Kernel driver in use: pcieport

00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 02) (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: feb00000-febfffff
    Prefetchable memory behind bridge: 00000000fa400000-00000000fa5fffff
    Capabilities: [40] Express Root Port (Slot+), MSI 00
    Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
    Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device 8277
    Capabilities: [a0] Power Management version 2
    Capabilities: [100] Virtual Channel
    Capabilities: [180] Root Complex Link
    Kernel driver in use: pcieport

00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02) (prog-if 00 [UHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 23
    I/O ports at c080 [size=32]
    Capabilities: [50] PCI Advanced Features
    Kernel driver in use: uhci_hcd

00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02) (prog-if 00 [UHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 19
    I/O ports at c400 [size=32]
    Capabilities: [50] PCI Advanced Features
    Kernel driver in use: uhci_hcd

00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02) (prog-if 00 [UHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 18
    I/O ports at c480 [size=32]
    Capabilities: [50] PCI Advanced Features
    Kernel driver in use: uhci_hcd

00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02) (prog-if 20 [EHCI])
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0, IRQ 23
    Memory at fcfff800 (32-bit, non-prefetchable) [size=1K]
    Capabilities: [50] Power Management version 2
    Capabilities: [58] Debug port: BAR=1 offset=00a0
    Capabilities: [98] PCI Advanced Features
    Kernel driver in use: ehci-pci

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) (prog-if 01 [Subtractive decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=04, subordinate=04, sec-latency=32
    Capabilities: [50] Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard

00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02)
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: bus master, medium devsel, latency 0
    Capabilities: [e0] Vendor Specific Information: Len=0c <?>

00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02) (prog-if 01 [AHCI 1.0])
    Subsystem: ASUSTeK Computer Inc. Device 8277
    Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 43
    I/O ports at bc00 [size=8]
    I/O ports at b880 [size=4]
    I/O ports at b800 [size=8]
    I/O ports at b480 [size=4]
    I/O ports at b400 [size=32]
    Memory at fcffe800 (32-bit, non-prefetchable) [size=2K]
    Capabilities: [80] MSI: Enable+ Count=1/16 Maskable- 64bit-
    Capabilities: [70] Power Management version 3
    Capabilities: [a8] SATA HBA v1.0
    Capabilities: [b0] PCI Advanced Features
    Kernel driver in use: ahci

00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
    Subsystem: ASUSTeK Computer Inc. P5K PRO Motherboard
    Flags: medium devsel, IRQ 18
    Memory at fcfff400 (64-bit, non-prefetchable) [size=256]
    I/O ports at 0400 [size=32]

01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Gigabyte Technology Co., Ltd Device 3546
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
    Memory at f0000000 (64-bit, prefetchable) [size=128M]
    Memory at f8000000 (64-bit, prefetchable) [size=32M]
    I/O ports at dc00 [size=128]
    Expansion ROM at fea00000 [disabled] [size=512K]
    Capabilities: [60] Power Management version 3
    Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [78] Express Endpoint, MSI 00
    Capabilities: [b4] Vendor Specific Information: Len=14 <?>
    Capabilities: [100] Virtual Channel
    Capabilities: [128] Power Budgeting <?>
    Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
    Kernel driver in use: nouveau
    Kernel modules: nouveau

01:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)
    Subsystem: Gigabyte Technology Co., Ltd Device 3546
    Flags: bus master, fast devsel, latency 0, IRQ 17
    Memory at feafc000 (32-bit, non-prefetchable) [size=16K]
    Capabilities: [60] Power Management version 3
    Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [78] Express Endpoint, MSI 00
    Kernel driver in use: snd_hda_intel

02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12)
    Subsystem: ASUSTeK Computer Inc. Motherboard
    Flags: bus master, fast devsel, latency 0, IRQ 44
    Memory at febfc000 (64-bit, non-prefetchable) [size=16K]
    I/O ports at e800 [size=256]
    Expansion ROM at febc0000 [disabled] [size=128K]
    Capabilities: [48] Power Management version 3
    Capabilities: [50] Vital Product Data
    Capabilities: [5c] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [e0] Express Legacy Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Kernel driver in use: sky2

lshw

        gentoomyuser3x86_64          
        description: Desktop Computer
        product: Maximus Formula (To Be Filled By O.E.M.)
        vendor: System manufacturer
        version: System Version
        serial: System Serial Number
        width: 64 bits
        capabilities: smbios-2.4 dmi-2.4
        configuration: boot=normal chassis=desktop family=To Be Filled By O.E.M. sku=To Be Filled By O.E.M. uuid=00020003-0004-0005-0006-000700080009
      *-core
           description: Motherboard
           product: Maximus Formula
           vendor: ASUSTeK Computer INC.
           physical id: 0
           version: Rev 1.xx
           serial: MB-1234567890
           slot: To Be Filled By O.E.M.
         *-firmware
              description: BIOS
              vendor: American Megatrends Inc.
              physical id: 0
              version: 1403
              date: 09/10/2009
              size: 64KiB
              capacity: 1984KiB
              capabilities: isa pci pnp apm upgrade shadowing escd cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification
         *-cpu
              description: CPU
              product: Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz
              vendor: Intel Corp.
              physical id: 4
              bus info: cpu@0
              version: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
              serial: To Be Filled By O.E.M.
              slot: LGA775
              size: 2394MHz
              capacity: 3800MHz
              width: 64 bits
              clock: 266MHz
              capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx x86-64 constant_tsc Arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm tpr_shadow vnmi flexpriority cpufreq
            *-cache:0
                 description: L1 cache
                 physical id: 5
                 slot: L1-Cache
                 size: 128KiB
                 capacity: 128KiB
                 capabilities: internal write-back data
            *-cache:1
                 description: L2 cache
                 physical id: 6
                 slot: L2-Cache
                 size: 8MiB
                 capacity: 8MiB
                 capabilities: internal write-back instruction

これはGentooですが、Archで this を見つけることができます。 Archのpowerdownパッケージのどこかに「優雅な」サスペンド/レジュームを許可するという言及があります。私は一時停止します:

echo -n "mem" > /sys/power/state

だから私は何かを心配する必要があります、そして私のシステムを一時停止する方法に何か問題がありますか?

提案されたように、私は memtest86 + (15分、私が思う12のテスト)で1つのフルパスを実行しましたが、エラーは発生しませんでした。これは2x2gbコルセアです。このリグは焼き付けられており、非常に安定しています。これで1000以上のGentooパッケージをコンパイルしました。


さらなるテスト

コミュニティメンバーがこのエラーを正確に解決するために展開されたカーネルパッチを特定した後(「epoll:freezableブロッキング呼び出しを元に戻す」)、ソースにパッチを適用しようとしました。それ 判明 パッチはすでにインストールされています!?

s2ramなどを含むsuspendパッケージもインストールしました。このユーティリティは、コンピューターをサスペンドする方法に違いはないようです。サスペンドおよびウェイクアップイベントのログをs2ramを使用してから比較し、次に使用するコマンドを使用して比較しましたが、違いはありません。その点では、echo -n "mem" > /sys/power/stateの使用には何の問題もないと結論付けます。

また、ethtoolを使用してウェイクオンLANが無効になっていることを確認しました(ウェイクオン:pg /ウェイクオン:dをサポートしています)。

多分BIOSの設定ですか?または、そのBIOSが更新されなくなり、その例外がトリガーされるため、それに応じる必要があります。

6
user44370

デフォルトでは、Linuxカーネルは最低64KのシステムメモリをBIOS用に予約し、メモリのその部分を繰り返しスキャンして予期しない変更がないか調べます。バックグラウンドスキャンプロセスがメモリが予期せず変更された(破損した)ことに気付いた場合、カーネルログにスパムを送信します。

Corrupted low memory at <virtual address> (<address> phys) = <memory contents after corruption>
...
Memory corruption detected in low memory
...
Hardware name: <BIOS info>

ここで、virtual addressは、破損したメモリを指す仮想アドレスです。これは事実上何でもかまいません(知っている他のソフトウェアが上記のアドレスを使用していることを知らない限り、これは無視しても安全です。物理的なaddressは興味深い部分です。そのアドレス(常に16進数で出力)が64K(2 ^ 16バイト)未満である限り、問題はなく、メッセージは本当に

マザーボードの製造元が不適切であり、システムBIOSが低メモリ領域(0〜64Kの物理メモリ)に書き込んでいますが、ACPIメモリテーブルを使用してその領域を予約していません。 Linuxカーネルはこのバグを予期しており、そこに重要なものを保存していません。 BIOSが修正された場合、実際のRAMの最後の64Kも使用できます。ただし、BIOSにこのバグがあるとの期待を無効にするには、カーネルを再コンパイルする必要があるでしょう。

カーネル開発者は、既知の不良BIOSバージョンのリストを収集し、RAMの最低64Kの使用を無効にしようとしていました。BIOSにバグがあることがわかっている場合に限ります。実際には、BIOSの製造元は能力がないことが判明しています。既知の適切なBIOSバージョンのリストを作成する方が理にかなっているので十分です。そのリストははるかに短くなります。長期的には、メモリの最低64Kを常に不良として宣言し、全体の混乱を無視する方がはるかに簡単です。すべてのi386/AMD64互換Linuxコンピューターで64KのRAM=が失われますが、開発者はより生産的なもののために時間を費やすことができます。

BIOSが不良であることがわかっていて(上記の警告はカーネルログに出力されます)、不良BIOSのスキャンをスキップしてメモリを予約し続けたい場合は、そのメモリ領域を予約してスキャンを無効にできます。次のカーネルフラグを追加するだけです。

memmap=64K$0 memory_corruption_check=0

フラグmemmapは、物理アドレス0(物理RAMの先頭)で64KのRAM=)を予約し、フラグmemory_corruption_checkは、破損のバックグラウンドスキャンを無効にします。

システムに予期しないRAM=破損があり、BIOSが疑われる場合、memmap=1024K$0を追加すると、Linuxカーネルから物理的にRAM=の開始時に1MBが予約されます。 Windows 10はデフォルトでこれを行うと噂されているため、最初の1MB全体で将来のBIOSバージョンが破損しても、Windows 10を使用しても問題が発生しなかったとしても、驚かないでしょう。

4

これは実際にはメモリの破損ではなく、システムが一時停止/再開したときにプロセスが正しく一時停止されていないか、カーネル自体の問題ではないかと思います。

そのために、おそらく関連している可能性があると思われるこのカーネルバグを見つけました: Bug 61781-suspemd-to-RAM後のユーザー空間メモリの破損-二分割対象:1c441e9 "epoll:use freezable block call 「

開発された パッチがあります ので、カーネルにこのパッチが含まれていることを確認します。

3
slm