On Thu, 13 Jul 2006 22:36:16 +0200
Christoph Hellwig <[EMAIL PROTECTED]> wrote:
> On Sat, Jul 08, 2006 at 01:37:38PM -0700, David Miller wrote:
> > > My plan is to give dev_alloc_skb a struct netdevice * argument and
> > > introduce a alloc_netdev_node so the driver can tell what node the
> > > device is on. This gives a significant speedup for cell. I already
> > > have this implemented in fact but only converted a handfull of drivers.
> > >
> > > Does this approach sound okay?
> >
> > I do not think it is feasible to add a netdevice argument to
> > such a widely used interface.
> >
> > I would instead recommend that you add a new interface, and
> > we convert drivers gradually.
>
> I gave converting the dev_alloc_skb prototype everywhere a spin and it
> doesn't look too bad. There's only a few places that don't have a
> netdevice at hand, and all these look bogus:
>
> - drivers/atm/{idt77252.c, nicstar.c}, drivers/usb/atm/usbatm.c:
> These use private skb queues and do odd things. I can't see
> any point for using dev_alloc_skb with it's additional headroom
> reservation here.
> - drivers/isdn/<everything> :
> These don't even have a netdevice! Also I can't see why they
> need the headroom.
> - drivers/net/{ppp_async.c,drivers/net/ppp_async.c}:
> They take data from the underlying tty device. Because of that
> there's not point for he additional headroom.
> - net/irda/*:
> They allocate the skb in protocol code for TX. Should probably
> do a normal alloc_skb like all the other protocol code.
> - drivers/infiniband/hw/ipath/ipath_driver.c:
> Uses skbbuffs in a driver that has absolutely nothing to do
> with networking. Duh..
>
> I've added the respective maintainers to the cc list here so they can
> comment on these usages.
>
> The patchkit for this is at http://verein.lst.de/~hch/patches.skb.tgz, it
> includes the first two cleanup patches I posted previously (Any plans
> to put them in?), a patch to move __dev_alloc_skb out of line because
> otherwise we'd need to include netdevice.h in skbuff.h which creates
> lots of problems (and moving it out of lines shaves 10kb off a
> allyesconfig), the dev_alloc_skb prototype changes and some experimental
> patches to make dev_alloc_skb nodeaware.
>
> > That netdevice argument is useful for other things. For example,
> > you can use it to apply a per-netdev random memory allocation
> > failure setting, to test the robustness of drivers. I came up
> > with that idea something like 7 years ago but never got around
> > to doing it :)
>
> Sounds cool. While doing the change I also noticed that assigning
> skb->dev can move in there aswell, but I haven't done that change yet.
What's the new name? For sanity, don't reuse the name dev_alloc_skb.
--
Stephen Hemminger <[EMAIL PROTECTED]>
"And in the Packet there writ down that doome"
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html