On Wed, 2010-03-10 at 21:28 +0800, Prarit Bhargava wrote: > > > > Why do we need to see whether the memory is onlined before bringing cpu > > to online state? It seems that there is no dependency between cpu online > > and memory online. > > > > > > Yakui, > Thanks for the explanation. > Here's a deeper look into the issue. New Intel processors have an > on-die memory controller and this means that as the socket comes and > goes, so does the memory "behind" the socket. Yes. The nehalem processor has the integrated memory controller. But it is not required that the hot-added memory should be onlined before bringing up CPU. I do the following memory-hotplug test on one Machine. a. Before hot plugging memory, four CPUs socket are installed and all the logical CPU are brought up. (Only one node has the memory) b. The memory is hot-plugged and then the memory is onlined so that it can be accessed by the system. In the above testing case the CPU is brought up before onlining the hot-added memory. And the test shows that it can work well. > > ie) with new processors it is possible that an entire node which > consists of memory and cpus comes and goes with the socket enable and > disable. > > The cpu bringup code does local node allocations for the cpu. If the > memory connected to the node (which is "behind" the socket) isn't > online, then these allocations fail, and then the cpu bringup fails. If the CPU can't allocate the memory from its own node, it can turn to other node and see whether the memory can be allocated. And this depends on the NUMA allocation policy. > > P. > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html