On Mon, Aug 12, 2013 at 1:57 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote: > On 08/12/2013 01:54 PM, Tejun Heo wrote: >> Hello, Tony. >> >> On Mon, Aug 12, 2013 at 08:49:42PM +0000, Luck, Tony wrote: >>> The only fly I see in the ointment here is the crazy fragmentation of physical >>> memory below 4G on X86 systems. Typically it will all be on the same node. >>> But I don't know if there is any specification that requires it be that way. If some >>> "helpful" OEM decided to make some "lowmem" (below 4G) be available on >>> every node, they might in theory do something truly awesomely strange. But >>> even here - the granularity of such mappings tends to be large enough that >>> the "allocate near where the kernel was loaded" should still work to make those >>> allocations be on the same node for the "few megabytes" level of allocations. >> >> Yeah, "near kernel" allocations are needed only till SRAT information >> is parsed and fed into memblock. From then on, it'll be the usual >> node-affine top-down allocations, so the memory amount of interest >> here is inherently tiny; otherwise, we're doing something silly in our >> boot sequence. "near kernel" is not very clear. when we have 64bit boot loader, kernel could be anywhere. If the kernel is near the end of first kernel, we could have chance to have near kernel on second node. should use BRK for safe if the buffer is not too big. need bootloader will have kernel run-time size range in same node ram. >> > > Again, how much memory are we talking about here? page tables, buffer for slit table, buffer for double memblock.reserved, override acpi tables. looks like it is needing several mega bytes, esp someone using 4k page mapping for debug purpose. 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>