>>> >>>> + if ((NODE_DATA(nid) == NULL) || >>>> + (NODE_DATA(nid)->node_spanned_pages == 0)) { >>>> + if (try_online_node(nid)) >>> >>> .. to do something like online a node. >> >> We have changed the function name to 'find_cpu_nid'. > > Ok, but I would still not expect 'find_cpu_nid' to online the node. >
We would have to talk to the developer that created try_online_node() which fully initializes the node and all of the related data structures. A few of the APIs are external, and 'numa.c' knows how to allocate the base 'pgdat' structure, but everything else that the kernel depends upon for a node is handled in mm/page_alloc.c and mm/hotplug_memory.c. I was trying to avoid piecemeal changes to that code -- avoid any changes if it comes to it. Even if it was not expected to put the node online, it is convenient, as otherwise the patches to 'numa.c' would have to put the node online -- that is expected for a CPU that is online. Regards, -- Michael W. Bringmann Linux Technology Center IBM Corporation Tie-Line 363-5196 External: (512) 286-5196 Cell: (512) 466-0650 m...@linux.vnet.ibm.com