From: Jeff Garzik <hidden> Date: 2003-11-19 17:34:33
Ok, Al Viro's net driver refcounting work is pretty much complete, and shemminger/ogawa NAPI conversation of 8139too is also merged.
Please beat this up as much as possible. Don't let the "experimental" tag fool you... these changes should be solid, and will be going to Andrew/Linus when the 2.6.0 tree re-opens.
Don't forget to CC netdev@oss.sgi.com on all feedback.
Thanks!
Jeff
On Wed, Nov 19, 2003 at 12:33:08PM -0500, Jeff Garzik wrote:
Ok, Al Viro's net driver refcounting work is pretty much complete, and
The hell it is. We are through with legacy probes, we are through with
init_etherdev(), we are practically through with static struct net_device.
However, we still have weird allocators (I've got almost all of them
done by now, will submit in the next batch) and we still have struct
net_device embedded as a field of other structures in several drivers.
It's nowhere near as massive as legacy probes series, but it's going to
be 10--20 patches. At least.
From: Jeff Garzik <hidden> Date: 2003-11-20 05:24:17
viro@parcelfarce.linux.theplanet.co.uk wrote:
On Wed, Nov 19, 2003 at 12:33:08PM -0500, Jeff Garzik wrote:
quoted
Ok, Al Viro's net driver refcounting work is pretty much complete, and
The hell it is. We are through with legacy probes, we are through with
init_etherdev(), we are practically through with static struct net_device.
hehe :) I don't mean to suggest that all is clean and pure :)
However, we still have weird allocators (I've got almost all of them
done by now, will submit in the next batch) and we still have struct
net_device embedded as a field of other structures in several drivers.
Some of that will be interesting. ns83820 for example embedded net_device on purpose... Ben seemed to think at the time it gave him some speed, a few less pointer derefs and such.
Jeff
On Thu, Nov 20, 2003 at 12:23:44AM -0500, Jeff Garzik wrote:
viro@parcelfarce.linux.theplanet.co.uk wrote:
quoted
On Wed, Nov 19, 2003 at 12:33:08PM -0500, Jeff Garzik wrote:
quoted
Ok, Al Viro's net driver refcounting work is pretty much complete, and
The hell it is. We are through with legacy probes, we are through with
init_etherdev(), we are practically through with static struct net_device.
hehe :) I don't mean to suggest that all is clean and pure :)
quoted
However, we still have weird allocators (I've got almost all of them
done by now, will submit in the next batch) and we still have struct
net_device embedded as a field of other structures in several drivers.
Some of that will be interesting. ns83820 for example embedded
net_device on purpose... Ben seemed to think at the time it gave him
some speed, a few less pointer derefs and such.
That's fine, but 83820 should be doing that the other way round.
Note that for objects allocated by alloc_netdev() we have
(char*) dev->priv == (char *)dev + const
and constant can be found at compile time _if_ we pad in front of
net_device and add a pointer to allocated block into net_device.
So we can have exactly the same structure (modulo padding) and no extra
dereferencing. All we need is inlined void *net_priv(struct net_device *);
That, BTW, would be a win for other drivers using alloc_...() and not
reassigning ->priv (i.e. majority of those beasts).