On Thu, Aug 15, 2013 at 12:08 PM, Luck, Tony <tony.luck@xxxxxxxxx> wrote: >> That is what my patchset want to do. >> put page tables on the same node like node data. >> with that, hotplug and normal case will be the same code path. > > Page tables are a big issue if we have 4K mappings (8 byte entry per > 4K page means 2MB of page tables per GB of memory) ... but only > used for DEBUG cases, right? yes. > > If we use 2M mappings, then allocations are 512x smaller - so only > 4K per GB - hard to justify spreading that across nodes. > > If we can use 1GB mappings - then another 512x reduction to 8 bytes per GB (or 8KB per TB) Yes. 4k for 512G. Just make all cases use same code path even for DEBUG_PAGEALLOC with 4k page mapping. > > Aren't page structures a bigger issue? ~64 bytes per 4K page. Do we > make sure these get allocated from the NUMA node that they describe? > This should not hurt the ZONE_MOVEABLE-ness of this - although they are > kernel structures they can be freed when the node is removed (at that point > they describe memory that is no longer present). From a scalability perspective > we don't want to run node0 low on memory by using it for every other node. > From a NUMA perspective we want the page_t that describes a page to be > in the same locality as the page itself. yes, that is vmemmap, and it is already numa aware. Thanks Yinghai -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>