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

From: Tang Chen
Date: Sun Feb 24 2013 - 21:55:21 EST


On 02/24/2013 03:26 AM, Rob Landley wrote:
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).

Hi Rob,

Thanks for ack. :)


@@ -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.

SFAIK, this is more useful when debugging.


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?)

No, we cannot hot-plug/hot-unplug half a node. But we can offline some of the
memory, not all the memory on one node. :)

Here, hotplug means finally you will physically remove the hardware device from
the system while the system is running. So there is no such thing like hotplug
half a node, I think. :)

Thanks. :)
--
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/