Re: Purpose of numa_node?

From: Yinghai Lu
Date: Wed Feb 13 2008 - 16:52:28 EST


On Feb 13, 2008 10:52 AM, Brice Goglin <Brice.Goglin@xxxxxxxx> wrote:
> 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?

Andi thought that is too hardware related...
they have stayed a while in -mm.

these patchset could be only useful
when you have several HT chains, and BIOS doesn't have pxm->node in dsdt,
or doesn't allocate io resource to some of addon cards.

YH
--
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/