Re: [PATCH 0 of 3] Low memory corruption detection and workaround

From: Alan Jenkins
Date: Sun Sep 07 2008 - 11:25:13 EST


Jeremy Fitzhardinge wrote:
> Hi Ingo,
>
> This series implements a check and workaround for memory corruption in
> low memory.
>
> The first patch adds the basic mechanism. The second adds some
> enchancements from Hugh, namely periodic scanning for badness. The
> third tidies the user interface up by adding a proper Kconfig option
> and several kernel command-line parameters to enable the feature and
> control the amount of memory it scans and how often. It also uses a
> WARN() with the intention of getting any output into ksymoops.org.
>
> I've tested it as far as I can, but none of my systems seem to exhibit
> this type of corruption so I haven't seen the failure case output. I
> hope Alan and RafaÅ can test this version of the patch and report it
> does the expected thing.
>
> [ Hugh - I took the liberty of splitting your patch up into a delta on
> top of mine, moving the pure bugfixes into my base patch, and
> putting your additional code into the new patch From you with your
> sign-off from the original patch, and adding my own sob to reflect
> the changes I made. I hope you don't mind. ]
>
> Thanks,
> J
>

Seems to work ok.

(And here's the output, for the benefit of Google / kerneloops.org).

[ 84.140181] Back to C!
[ 84.140181] Corrupted low memory at ffff8800000083e8 (83e8 phys) =
803c85370cfc0000
[ 84.140181] Corrupted low memory at ffff8800000083f0 (83f0 phys) =
00003000
[ 84.140181] ------------[ cut here ]------------
[ 84.140181] WARNING: at arch/x86/kernel/setup.c:698
check_for_bios_corruption+0xd9/0xe0()
[ 84.140181] Memory corruption detected in low memory
[ 84.140181] Modules linked in:
[ 84.140181] Pid: 7813, comm: s2ram Not tainted
2.6.27-rc5-00322-gb84d508 #160
[ 84.140181]
[ 84.140181] Call Trace:
[ 84.140181] [<ffffffff80238a87>] warn_slowpath+0xb7/0xe0
[ 84.140181] [<ffffffff802524f6>] ? down_trylock+0x36/0x50
[ 84.140181] [<ffffffff80239330>] ? try_acquire_console_sem+0x10/0x40
[ 84.140181] [<ffffffff80212b69>] ? read_tsc+0x9/0x20
[ 84.140181] [<ffffffff80253eca>] ? getnstimeofday+0x3a/0xc0
[ 84.140181] [<ffffffff80239c07>] ? printk+0x67/0x70
[ 84.140181] [<ffffffff8036f3e3>] ? acpi_os_release_lock+0x9/0xb
[ 84.140181] [<ffffffff8037d75c>] ? acpi_set_register+0x161/0x173
[ 84.140181] [<ffffffff8020fe69>] check_for_bios_corruption+0xd9/0xe0
[ 84.140181] [<ffffffff803c1db9>] pm_dev_dbg+0x9/0x10
[ 84.140181] [<ffffffff803c28f2>] dpm_power_up+0x32/0xf0
[ 84.140181] [<ffffffff803c2b47>] device_power_up+0x17/0x20
[ 84.140181] [<ffffffff80261e6c>] suspend_devices_and_enter+0x16c/0x190
[ 84.140181] [<ffffffff8026205c>] enter_state+0x19c/0x1b0
[ 84.140181] [<ffffffff8026211f>] state_store+0xaf/0xf0
[ 84.140181] [<ffffffff803465b7>] kobj_attr_store+0x17/0x20
[ 84.140181] [<ffffffff802ff34b>] sysfs_write_file+0xeb/0x140
[ 84.140181] [<ffffffff802a9c87>] vfs_write+0xc7/0x180
[ 84.140181] [<ffffffff802aa290>] sys_write+0x50/0x90
[ 84.140181] [<ffffffff8020c35b>] system_call_fastpath+0x16/0x1b
[ 84.140181]
[ 84.140181] ---[ end trace e31222efe32d34ab ]---

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/