>> >> But currently, I don't >> >think you can use the numa_mem_id()/cpu_to_mem() interfaces for your >> >purpose. I suppose you could change page_alloc.c to compile >> >local_memory_node() #if defined(CONFIG_HAVE_MEMORYLESS_NODES) || >> >defined >> >(CPU_HOTPLUG) and use that function to find the nearest memory. It >> >should return a valid node after zonelists have been rebuilt. >> > >> >Does that make sense? >> >> Yes, besides, I need to find a place in hotplug path to call set_numa_mem() >> just as you mentioned for ia64 platform. Is my understanding right ? > >I don't think you can use any of the "numa_mem" functions on x86[_64] >without doing a lot more work to expose memoryless nodes. On x86_64, >numa_mem_id() and cpu_to_mem() always return the same as numa_node_id() >and cpu_to_node(). This is because x86_64 code hides memoryless nodes >and reassigns all cpus to nodes with memory. Are you planning on >changing this such that memoryless nodes remain on-line with their cpus >associated with them? If so, go for it! If not, then you don't need >to [can't really, I think] use set_numa_mem()/cpu_to_mem() for your >purposes. That's why I suggested you arrange for local_memory_node() to >be compiled for CPU_HOTPLUG and call that function directly to obtain a >nearby node from which you can allocate memory during cpu hot plug. Or, >I could just completely misunderstand what you propose to do with these >percpu variables. Got it, thank you very much for detailed explanation. -minskey -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href