* Adding an option to tell the kernel to try to stay away from
hotpluggable nodes is fine. I have no problem with that at all.
* The patchsets upto this point have been somehow trying to reorder
operations shomehow such that *no* memory allocation happens before
memblock is populated with hotplug information.
* However, we already *know* that the memory the kernel image is
occupying won't be removeable. It's highly likely that the amount
of memory allocation before NUMA / hotplug information is fully
populated is pretty small. Also, it's highly likely that small
amount of memory right after the kernel image is contained in the
same NUMA node, so if we allocate memory close to the kernel image,
it's likely that we don't contaminate hotpluggable node. We're
talking about few megs at most right after the kernel image. I
can't see how that would make any noticeable difference.
* Once hotplug information is available, allocation can happen as
usual and the kernel can report the nodes which are actually
hotpluggable - marked as hotpluggable by the firmware&& didn't get
contaminated during early alloc&& didn't get overflow allocations
afterwards. Note that we need such mechanism no matter what as the
kernel image can be loaded into hotpluggable nodes and reporting
that to userland is the only thing the kernel can do for cases like
that short of denying memory unplug on such nodes.