Re: [PATCH] x86/PCI: initialize PCI bus node numbers early

Yinghai Lu
2009-07-10T20:11:25Z

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,

good to me.

YH