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

Reply via email to