Hi Mel,
On 01/17/2014 01:11 AM, Mel Gorman wrote:
On Tue, Dec 03, 2013 at 10:22:00AM +0800, Zhang Yanfei wrote:
From: Yasuaki Ishimatsu<isimatu.yasuaki@xxxxxxxxxxxxxx>
If system can create movable node which all memory of the node is allocated
as ZONE_MOVABLE, setup_node_data() cannot allocate memory for the node's
pg_data_t. So, invoke memblock_alloc_nid(...MAX_NUMNODES) again to retry when
the first allocation fails. Otherwise, the system could failed to boot.
(We don't use memblock_alloc_try_nid() to retry because in this function,
if the allocation fails, it will panic the system.)
This implies that it is possible to ahve a configuration with a big ratio
difference between Normal:Movable memory. In such configurations there
would be a risk that the system will reclaim heavily or go OOM because
the kernrel cannot allocate memory due to a relatively small Normal
zone. What protects against that? Is the user ever warned if the ratio
between Normal:Movable very high?
For now, there is no way protecting against this. But on a modern
server, it won't be
that easy running out of memory when booting, I think.
The current implementation will set any node the kernel resides in as
unhotpluggable,
which means normal zone here. And for nowadays server, especially memory
hotplug server,
each node would have at least 16GB memory, which is enough for the
kernel to boot.
We can add a patch to make it return to the original path if we run out
of memory,
which means turn off the functionality and warn users in log.
How do you think ?
The movable_node boot parameter still
turns the feature on and off, there appears to be no way of controlling
the ratio of memory other than booting with the minimum amount of memory
and manually hot-adding the sections to set the appropriate ratio.
For now, yes. We expect firmware and hardware to give the basic ratio
(how much memory
is hotpluggable), and the user decides how to arrange the memory (decide
the size of
normal zone and movable zone).
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>