On Thu, Jun 13, 2013 at 09:03:03PM +0800, Tang Chen wrote:
> From: Yinghai Lu <yinghai@xxxxxxxxxx>
>
> numa_emulation() needs to allocate buffer for new numa_meminfo
> and distance matrix, so execute it later in x86_numa_init().
>
> Also we change the behavoir:
> - before this patch, if user input wrong data in command
> line, it will fall back to next numa probing or disabling
> numa.
> - after this patch, if user input wrong data in command line,
> it will stay with numa info probed from previous probing,
> like ACPI SRAT or amd_numa.
>
> We need to call numa_check_memblks to reject wrong user inputs early
> so that we can keep the original numa_meminfo not changed.

So, this is another very subtle ordering you're adding without any
comment and I'm not sure it even makes sense because the function can
fail after that point.

I'm getting really doubtful about this whole approach of carefully
splitting discovery and registration. It's inherently fragile like
hell and the poor documentation makes it a lot worse. I'm gonna reply
to the head message.