On Sun, 2006-10-08 at 00:02 -0700, Martin J. Bligh wrote:
Not sure if you've seen this already ... catching up on test results.
This was on NUMA-Q, on both -mm2 and -mm3. -mm1 didn't suffer from this
problem.
Full logs:
mm2 - http://test.kernel.org/abat/50727/debug/console.log
mm3 - http://test.kernel.org/abat/51442/debug/console.log
config - http://test.kernel.org/abat/51442/build/dotconfig
I'm guessing from the 00000004 that the pcibus_to_node(dev->bus)
is failing because bus->sysdata is NULL. The disassembly and
structure offsets seem to line up for that.
#define pcibus_to_node(bus) (
(struct pci_sysdata *)((bus)->sysdata))->node
struct pci_sysdata {
int domain; /* PCI domain */
int node; /* NUMA node */
};
Martin,
Jeff moved "node" to a proper field in sysdata, instead
of overloading sysdata itself. I think this is causing the
problem. I guess we could end up with sysdata = NULL in some
cases ? Since you are the NUMA-Q expert, where does sysdata gets set for NUMA-Q ? :)
-mm2 changed:
#define pcibus_to_node(bus) ((long) (bus)->sysdata)
to
#define pcibus_to_node(bus) ((struct pci_sysdata *)((bus)->sysdata))-
node