Re: [PATCH 1/1] x86-64: introduce struct pci_sysdata to facilitatesharing of ->sysdata

From: Arjan van de Ven
Date: Thu Jul 12 2007 - 05:13:47 EST


On Thu, 2007-07-12 at 12:10 +0300, Muli Ben-Yehuda wrote:
> On Thu, Jul 12, 2007 at 09:17:31AM +0800, Arjan van de Ven wrote:
> > On Wed, 2007-07-11 at 16:45 +0300, Muli Ben-Yehuda wrote:
> > > Andi, please consider applying for 2.6.23. Applies on top of the
> > > Calgary update I just sent out ("Calgary: more updates for 2.6.23").
> > >
> > > This patch introduces struct pci_sysdata to x86 and x86-64, and
> > > converts the existing two users (NUMA, Calgary) to use it.
> > >
> > > This lays the groundwork for having other users of sysdata, such as
> > > the PCI domains work.
> > >
> > > The Calgary bits are tested, the NUMA bits just look ok.
> >
> > I very much start to dislike the untyped "sysdata"... I much rather
> > have separate fields for the different uses (like a IOMMU field)
> > that aren't going to share ever. Possibly even typed, but for IOMMU
> > that may be tricky....
>
> Could you elaborate on what you mean here?
>
> If you mean instead of hanging a pci_sysdata off of struct pci_bus,
> hang a 'void *iommu' and an 'int node' directly off of the pci_bus,

yes that is what I mean.

> that looks like a lot of churn (most architecture use sysdata as an
> opaque pointer to an arch specific structure) and bloat (you would

it's only a few bytes per pci device/bus. not all that bad for having
something which involves splitting a shared pointer into logical users.

(and heck, if you really really are worried we could make it a union for
some of them, although that defeats the "split is safer" benefit)

--
if you want to mail me at work (you don't), use arjan (at) linux.intel.com
Test the interaction between Linux and your BIOS via http://www.linuxfirmwarekit.org

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