i booted a c4.8xlarge flavor AWS instance and got the same memory/numa layout as comment 16. To clarify though, the /proc/iomem output isn't representative of the actual memory layout; specifically it is:
[929310.854161] On node 0 totalpages: 7769757
[929310.854162] DMA zone: 64 pages used for memmap
[929310.854162] DMA zone: 21 pages reserved
[929310.854163] DMA zone: 3997 pages, LIFO batch:0
[929310.854196] mminit::memmap_init Initialising map node 0 zone 0 pfns 1 -> 4096
[929310.854265] DMA32 zone: 15296 pages used for memmap
[929310.854266] DMA32 zone: 978944 pages, LIFO batch:31
[929310.854299] mminit::memmap_init Initialising map node 0 zone 1 pfns 4096 -> 1048576
[929310.869608] Normal zone: 106044 pages used for memmap
[929310.869611] Normal zone: 6786816 pages, LIFO batch:31
[929310.869647] mminit::memmap_init Initialising map node 0 zone 2 pfns 1048576 -> 7835392
[929310.975013] On node 1 totalpages: 7958783
[929310.975018] Normal zone: 124356 pages used for memmap
[929310.975019] Normal zone: 7958783 pages, LIFO batch:31
[929310.975055] mminit::memmap_init Initialising map node 1 zone 2 pfns 7835392 -> 15794175
node 0 DMA and DMA32 ranges are normal, ending at 0x1000 and 0x100000, respectively. The Normal zone for node 0 ends at 0x778f00, and the Normal zone for node 1 ends at 0xf0ffff. Since PAGE_SHIFT is 12 and pageblock_order (with this system config) is (21 - 12 = 9):
node 0 Normal zone ends on a pageblock boundary, while node 1 Normal zone ends 1 page short of a pageblock boundary.
Preliminary note: the SRAT table seems to be incorrect; it spans node 1 all the way to 0xf0fffffff, but e820 memory, and the node 1 Normal zone, only reach 0xf0fffefff.
i booted a c4.8xlarge flavor AWS instance and got the same memory/numa layout as comment 16. To clarify though, the /proc/iomem output isn't representative of the actual memory layout; specifically it is:
[ 0.000000] e820: BIOS-provided physical RAM map: 000-0x000000000 009dfff] usable 000-0x000000000 009ffff] reserved 000-0x000000000 00fffff] reserved 000-0x00000000e fffffff] usable 000-0x00000000f fffffff] reserved 000-0x0000000f0 fffefff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000000000
[ 0.000000] BIOS-e820: [mem 0x000000000009e
[ 0.000000] BIOS-e820: [mem 0x00000000000e0
[ 0.000000] BIOS-e820: [mem 0x0000000000100
[ 0.000000] BIOS-e820: [mem 0x00000000fc000
[ 0.000000] BIOS-e820: [mem 0x0000000100000
and the SRAT divides it into 2 nodes as:
[929310.710905] SRAT: Node 0 PXM 0 [mem 0x00000000- 0xefffffff] 0x778efffff] 0xf0fffffff]
[929310.710906] SRAT: Node 0 PXM 0 [mem 0x100000000-
[929310.710907] SRAT: Node 1 PXM 1 [mem 0x778f00000-
so the node ranges are set up as:
[929310.854161] On node 0 totalpages: 7769757
[929310.854162] DMA zone: 64 pages used for memmap
[929310.854162] DMA zone: 21 pages reserved
[929310.854163] DMA zone: 3997 pages, LIFO batch:0
[929310.854196] mminit::memmap_init Initialising map node 0 zone 0 pfns 1 -> 4096
[929310.854265] DMA32 zone: 15296 pages used for memmap
[929310.854266] DMA32 zone: 978944 pages, LIFO batch:31
[929310.854299] mminit::memmap_init Initialising map node 0 zone 1 pfns 4096 -> 1048576
[929310.869608] Normal zone: 106044 pages used for memmap
[929310.869611] Normal zone: 6786816 pages, LIFO batch:31
[929310.869647] mminit::memmap_init Initialising map node 0 zone 2 pfns 1048576 -> 7835392
[929310.975013] On node 1 totalpages: 7958783
[929310.975018] Normal zone: 124356 pages used for memmap
[929310.975019] Normal zone: 7958783 pages, LIFO batch:31
[929310.975055] mminit::memmap_init Initialising map node 1 zone 2 pfns 7835392 -> 15794175
node 0 DMA and DMA32 ranges are normal, ending at 0x1000 and 0x100000, respectively. The Normal zone for node 0 ends at 0x778f00, and the Normal zone for node 1 ends at 0xf0ffff. Since PAGE_SHIFT is 12 and pageblock_order (with this system config) is (21 - 12 = 9):
node 0 Normal zone ends on a pageblock boundary, while node 1 Normal zone ends 1 page short of a pageblock boundary.
Preliminary note: the SRAT table seems to be incorrect; it spans node 1 all the way to 0xf0fffffff, but e820 memory, and the node 1 Normal zone, only reach 0xf0fffefff.