Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

NUMA puzzle: ACPI SRAT parser



Hi!


This is a patch which implements an ACPI SRAT parser.
It acts as a sort of data provider.

NUMA support is a big task. The ACPI SRAT parser
is considered to be a part of the NUMA puzzle.

http://www.netbsd.org/~cegger/driver_acpisrat.diff


I have it tested on a 1-node, 2-node and an 8-node system:

SRAT: 1 NUMA nodes
SRAT: node 0 cpu 0 (apic 0, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 1 (apic 1, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 memory range 0 (0x0 - 0xa0000 flags 1)
SRAT: node 0 memory range 1 (0x100000 - 0xca000000 flags 1)
SRAT: node 0 memory range 2 (0x100000000 - 0x136000000 flags 1)

SRAT: 2 NUMA nodes
SRAT: node 0 cpu 0 (apic 0, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 1 (apic 1, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 2 (apic 2, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 3 (apic 3, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 memory range 0 (0x0 - 0xa0000 flags 1)
SRAT: node 0 memory range 1 (0x100000 - 0x80000000 flags 1)
SRAT: node 1 cpu 0 (apic 4, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 1 (apic 5, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 2 (apic 6, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 3 (apic 7, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 memory range 0 (0x80000000 - 0xd0000000 flags 1)
SRAT: node 1 memory range 1 (0x100000000 - 0x130000000 flags 1)

SRAT: 8 NUMA nodes
SRAT: node 0 cpu 0 (apic 16, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 1 (apic 17, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 2 (apic 18, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 3 (apic 19, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 4 (apic 20, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 cpu 5 (apic 21, sapic 0, flags 1, clockdomain 0)
SRAT: node 0 memory range 0 (0x0 - 0xa0000 flags 1)
SRAT: node 0 memory range 1 (0x100000 - 0xc8000000 flags 1)
SRAT: node 0 memory range 2 (0x100000000 - 0x438000000 flags 1)
SRAT: node 1 cpu 0 (apic 22, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 1 (apic 23, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 2 (apic 24, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 3 (apic 25, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 4 (apic 26, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 cpu 5 (apic 27, sapic 0, flags 1, clockdomain 0)
SRAT: node 1 memory range 0 (0x438000000 - 0x638000000 flags 1)
SRAT: node 2 cpu 0 (apic 32, sapic 0, flags 1, clockdomain 0)
SRAT: node 2 cpu 1 (apic 33, sapic 0, flags 1, clockdomain 0)
SRAT: node 2 cpu 2 (apic 34, sapic 0, flags 1, clockdomain 0)
SRAT: node 2 cpu 3 (apic 35, sapic 0, flags 1, clockdomain 0)
SRAT: node 2 cpu 4 (apic 36, sapic 0, flags 1, clockdomain 0)
SRAT: node 2 cpu 5 (apic 37, sapic 0, flags 1, clockdomain 0)
SRAT: node 2 memory range 0 (0x638000000 - 0xa38000000 flags 1)
SRAT: node 3 cpu 0 (apic 38, sapic 0, flags 1, clockdomain 0)
SRAT: node 3 cpu 1 (apic 39, sapic 0, flags 1, clockdomain 0)
SRAT: node 3 cpu 2 (apic 40, sapic 0, flags 1, clockdomain 0)
SRAT: node 3 cpu 3 (apic 41, sapic 0, flags 1, clockdomain 0)
SRAT: node 3 cpu 4 (apic 42, sapic 0, flags 1, clockdomain 0)
SRAT: node 3 cpu 5 (apic 43, sapic 0, flags 1, clockdomain 0)
SRAT: node 3 memory range 0 (0xa38000000 - 0xc38000000 flags 1)
SRAT: node 4 cpu 0 (apic 48, sapic 0, flags 1, clockdomain 0)
SRAT: node 4 cpu 1 (apic 49, sapic 0, flags 1, clockdomain 0)
SRAT: node 4 cpu 2 (apic 50, sapic 0, flags 1, clockdomain 0)
SRAT: node 4 cpu 3 (apic 51, sapic 0, flags 1, clockdomain 0)
SRAT: node 4 cpu 4 (apic 52, sapic 0, flags 1, clockdomain 0)
SRAT: node 4 cpu 5 (apic 53, sapic 0, flags 1, clockdomain 0)
SRAT: node 4 memory range 0 (0xc38000000 - 0x1038000000 flags 1)
SRAT: node 5 cpu 0 (apic 54, sapic 0, flags 1, clockdomain 0)
SRAT: node 5 cpu 1 (apic 55, sapic 0, flags 1, clockdomain 0)
SRAT: node 5 cpu 2 (apic 56, sapic 0, flags 1, clockdomain 0)
SRAT: node 5 cpu 3 (apic 57, sapic 0, flags 1, clockdomain 0)
SRAT: node 5 cpu 4 (apic 58, sapic 0, flags 1, clockdomain 0)
SRAT: node 5 cpu 5 (apic 59, sapic 0, flags 1, clockdomain 0)
SRAT: node 5 memory range 0 (0x1038000000 - 0x1238000000 flags 1)
SRAT: node 6 cpu 0 (apic 64, sapic 0, flags 1, clockdomain 0)
SRAT: node 6 cpu 1 (apic 65, sapic 0, flags 1, clockdomain 0)
SRAT: node 6 cpu 2 (apic 66, sapic 0, flags 1, clockdomain 0)
SRAT: node 6 cpu 3 (apic 67, sapic 0, flags 1, clockdomain 0)
SRAT: node 6 cpu 4 (apic 68, sapic 0, flags 1, clockdomain 0)
SRAT: node 6 cpu 5 (apic 69, sapic 0, flags 1, clockdomain 0)
SRAT: node 6 memory range 0 (0x1238000000 - 0x1638000000 flags 1)
SRAT: node 7 cpu 0 (apic 70, sapic 0, flags 1, clockdomain 0)
SRAT: node 7 cpu 1 (apic 71, sapic 0, flags 1, clockdomain 0)
SRAT: node 7 cpu 2 (apic 72, sapic 0, flags 1, clockdomain 0)
SRAT: node 7 cpu 3 (apic 73, sapic 0, flags 1, clockdomain 0)
SRAT: node 7 cpu 4 (apic 74, sapic 0, flags 1, clockdomain 0)
SRAT: node 7 cpu 5 (apic 75, sapic 0, flags 1, clockdomain 0)
SRAT: node 7 memory range 0 (0x1638000000 - 0x1838000000 flags 1)



Home | Main Index | Thread Index | Old Index