Re: [Bug fix PATCH 2/2] acpi, movablemem_map: Make whatever nodesthe kernel resides in un-hotpluggable.

From: Rob Landley
Date: Sat Feb 23 2013 - 16:34:16 EST


On 02/20/2013 05:00:56 AM, Tang Chen wrote:
There could be several memory ranges in the node in which the kernel resides.
When using movablemem_map=acpi, we may skip one range that have memory reserved
by memblock. But if it is too small, then the kernel will fail to boot. So, make
the whole node which the kernel resides in un-hotpluggable. Then the kernel has
enough memory to use.

Reported-by: H Peter Anvin <hpa@xxxxxxxxx>
Signed-off-by: Tang Chen <tangchen@xxxxxxxxxxxxxx>

Docs part Acked-by: Rob Landley <rob@xxxxxxxxxxx> (with minor non-blocking snark).

@@ -1673,6 +1675,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
satisfied. So the administrator should be careful that
the amount of movablemem_map areas are not too large.
Otherwise kernel won't have enough memory to start.
+ NOTE: We don't stop users specifying the node the
+ kernel resides in as hotpluggable so that this
+ option can be used as a workaround of firmware
+ bugs.

I usually see workaround "for", not "of". And your whitespace is inconsistent on that last line.

And I'm now kind of curious what such a workaround would accomplish, but I'm suspect it's obvious to people who wind up needing it.

MTD_Partition= [MTD]
Format: <name>,<region-number>,<size>,<offset>
diff --git a/arch/x86/mm/srat.c b/arch/x86/mm/srat.c
index b8028b2..79836d0 100644
--- a/arch/x86/mm/srat.c
+++ b/arch/x86/mm/srat.c
@@ -166,6 +166,9 @@ handle_movablemem(int node, u64 start, u64 end, u32 hotpluggable)
* for other purposes, such as for kernel image. We cannot prevent
* kernel from using these memory, so we need to exclude these memory
* even if it is hotpluggable.
+ * Furthermore, to ensure the kernel has enough memory to boot, we make
+ * all the memory on the node which the kernel resides in
+ * un-hotpluggable.
*/

Can you hot-unplug half a node? (Do you have a choice with the granularity here?)

Rob
--
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/