X86_RESERVE_LOW seems not to be respected in 3.13, 3.14

From: David Damerell
Date: Thu Aug 28 2014 - 14:08:22 EST


On machines running older kernels (3.5.0, 3.2.0), /proc/iomem starts:
00000000-0000ffff : reserved

On machines running newer kernels (3.13.0, 3.14.9), it starts:
00000000-00000fff : reserved

and there is output from the low memory corruption checker:
[ 0.000000] Scanning 1 areas for low memory corruption
[ 0.436639] Scanning for low memory corruption every 60 seconds

even though one would expect that with default settings it would find
the first 64K all reserved and do nothing.

The systems involved all have:
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
CONFIG_X86_RESERVE_LOW=64

If I give the argument "memmap=64K$0x00000000" to the kernel, I get
the expected /proc/iomem result and there is no output from the low
memory corruption checker.

The relevant code in arch/x86/kernel/setup.c seems to have moved from
trim_bios_range() to trim_low_memory_range() (leaving behind an orphan
comment), which means it comes much later in setup_arch(), but beyond
that I'm lost.

Apologies in advance for whatever obvious thing I am missing.
--
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/