Messages in this thread | | | Date | Mon, 14 Feb 2011 12:25:40 +0100 | From | Tejun Heo <> | Subject | Re: [PATCH 02/26] x86-64, NUMA: Simplify hotplug node handling in acpi_numa_memory_affinity_init() |
| |
Hello, Yinghai.
On Sat, Feb 12, 2011 at 10:13:51AM -0800, Yinghai Lu wrote: > > Eh? The oldnode thing will restore the node to initial state thus > > fulfilling the node empty condition. Am I missing something? > > > > yes. nd get restored, but it keep node_parsed set for that kind of node.
So, this is the code snippet. Both @nd->start and end are zero and nodes_parsed for @node is clear.
nd = &nodes[node]; oldnode = *nd;
@oldnode->start, end == 0.
if (!node_test_and_set(node, nodes_parsed)) { nd->start = start; nd->end = end; This path is taken and @nd->start and end are set. } else { if (start < nd->start) nd->start = start; if (nd->end < end) nd->end = end; }
printk(KERN_INFO "SRAT: Node %u PXM %u %lx-%lx\n", node, pxm, start, end);
if (ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) { update_nodes_add(node, start, end); /* restore nodes[node] */ *nd = oldnode; @nd->start and end are restored to zero. if ((nd->start | nd->end) == 0) node_clear(node, nodes_parsed); and @nodes_parsed is cleared. }
So, what the hell am I missing?
-- tejun
| |