Messages in this thread | | | Date | Fri, 10 Jul 2009 13:18:06 -0700 | From | Yinghai Lu <> | Subject | Re: [PATCH] x86/PCI: initialize PCI bus node numbers early |
| |
Jesse Barnes wrote: > The current mp_bus_to_node array is initialized only by AMD specific > code, since AMD platforms have registers that can be used for > determining mode numbers. On new Intel platforms it's necessary to > initialize this array as well though, otherwise all PCI node numbers > will be 0, when in fact they should be -1 (indicating that I/O isn't > tied to any particular node). > > So move the mp_bus_to_node code into the common PCI code, and > initialize it early with a default value of -1. This may be overridden > later by arch code (e.g. the AMD code). > > With this change, PCI consistent memory and other node specific > allocations (e.g. skbuff allocs) should occur on the "current" node. > If, for performance reasons, applications want to be bound to specific > nodes, they should open their devices only after being pinned to the > CPU where they'll run, for maximum locality. > > Any thoughts here Yinghai or Jesse? > > > include/asm/pci.h | 2 + > kernel/setup.c | 2 + > pci/amd_bus.c | 61 +----------------------------------------- > pci/common.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 83 insertions(+), 59 deletions(-) > > Thanks,
could use
static int mp_bus_to_node[BUS_NR] = { [0 ... BUS_NR - 1] = -1 };
so we avoid to add pci_bus_to_node_init()
YH
| |