Re: Purpose of numa_node?

From: Brice Goglin
Date: Wed Feb 13 2008 - 13:52:34 EST


Yinghai Lu wrote:
>>> Have a look at the above link. I don't get -1. I get 0 everywhere, while
>>> I should get 1 for some devices. And if I unplug/replug a device using
>>> fakephp, numa_node becomes correct (1 instead of 0). This just looks
>>> like the code is there but things are initialized in the wrong order.
>>>
>> do you have
>> ...
>> bus 00 -> pxm 0 -> node 0
>> ...
>> bus 40 -> pxm 1 -> node 1
>> ...
>> bus 80 -> pxm 1 -> node 1
>>
>> in your boot msg or dmesg?
>>
>> if not, your dsdt doesn't have _PXM for pci root bus. or you need to
>> ask your HW vendor to add that in their BIOS, or use my patchset.
>>
>
> please try the attached patchset
>
> please get x86.git then use quilt apply the patch
>
> http://people.redhat.com/mingo/x86.git/README
>

I finally managed to test this and it seems to work. I now get the
following numa_node attributes:
/sys/devices/pci0000:00/0000:00:01.0/numa_node 0
/sys/devices/pci0000:00/0000:00:07.0/numa_node 0
/sys/devices/pci0000:00/0000:00:07.0/0000:38:0d.0/numa_node 0
/sys/devices/pci0000:00/0000:00:08.0/numa_node 0
/sys/devices/pci0000:00/0000:00:08.1/numa_node 0
/sys/devices/pci0000:00/0000:00:08.2/numa_node 0
/sys/devices/pci0000:00/0000:00:09.0/numa_node 0
/sys/devices/pci0000:00/0000:00:09.1/numa_node 0
/sys/devices/pci0000:00/0000:00:09.2/numa_node 0
/sys/devices/pci0000:00/0000:00:0a.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0a.0/0000:22:00.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0b.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0c.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0c.0/0000:0c:00.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0c.0/0000:0c:00.0/0000:0d:00.0/numa_node
0
/sys/devices/pci0000:00/0000:00:0d.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0d.0/0000:01:00.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0e.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0e.0/0000:17:00.0/numa_node 0
/sys/devices/pci0000:00/0000:00:0e.0/0000:17:00.0/0000:18:00.0/numa_node
0
/sys/devices/pci0000:00/0000:00:18.0/numa_node 0
/sys/devices/pci0000:00/0000:00:18.1/numa_node 0
/sys/devices/pci0000:00/0000:00:18.2/numa_node 0
/sys/devices/pci0000:00/0000:00:18.3/numa_node 0
/sys/devices/pci0000:00/0000:00:19.0/numa_node 0
/sys/devices/pci0000:00/0000:00:19.1/numa_node 0
/sys/devices/pci0000:00/0000:00:19.2/numa_node 0
/sys/devices/pci0000:00/0000:00:19.3/numa_node 0
/sys/devices/pci0000:00/0000:00:1a.0/numa_node 0
/sys/devices/pci0000:00/0000:00:1a.1/numa_node 0
/sys/devices/pci0000:00/0000:00:1a.2/numa_node 0
/sys/devices/pci0000:00/0000:00:1a.3/numa_node 0
/sys/devices/pci0000:00/0000:00:1b.0/numa_node 0
/sys/devices/pci0000:00/0000:00:1b.1/numa_node 0
/sys/devices/pci0000:00/0000:00:1b.2/numa_node 0
/sys/devices/pci0000:00/0000:00:1b.3/numa_node 0
/sys/devices/pci0000:40/0000:40:0f.0/numa_node 1
/sys/devices/pci0000:40/0000:40:10.0/numa_node 1
/sys/devices/pci0000:40/0000:40:11.0/numa_node 1
/sys/devices/pci0000:40/0000:40:12.0/numa_node 1
/sys/devices/pci0000:40/0000:40:12.0/0000:51:00.0/numa_node 1
/sys/devices/pci0000:40/0000:40:13.0/numa_node 1

The 5 last lines above would report 0 instead of 1 with an older kernel.
Everything looks correct now (0000:40 is the second PCIe bus and it is
attached to socket #1).

Thanks a lot, Yinghai! Are you planning to merge these patches in the
near future? 2.6.26?

Brice

PS: I saved the corresponding dmesg. If you want to look at it, please
let me know.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/