Re: [PATCH] pcnet32 driver NAPI support
- From: Don Fry <brazilnut@xxxxxxxxxx>
- Date: Wed, 7 Jun 2006 11:20:40 -0700
On Wed, Jun 07, 2006 at 12:52:25PM -0400, Lennart Sorensen wrote:
I have added NAPI support to the pcnet32 driver. This has greatly
improved the responsiveness on my systems (geode GX1 266MHz) when under
heavy network load. Without this change the system would become
unresponsive due to interrupts when flooded with traffic, and eventually
the watchdog would reboot the system due to the watchdog daemon being
starved for cpu time. With the patch the system is still useable on a
serial console, although very slow. Network throughput is also higher
since more time is spend processing packets and getting them sent out,
instead of only spending time acknowledging interrupts from incoming
packets.
Now having never actually done a patch submission to the kernel before,
I will try and see if I can do it right.
The patch adds a PCNET32_NAPI config option to drivers/net/Kconfig, and
the appropriate code to support the option to drivers/net/pcnet32.c and
has been tested on many of my systems (allthough they are allmost all
identical, and require some extra patches to pcnet32 due to not having
an EEPROM installed), and on an AT-2700TX.
I have made a diff against 2.6.16.20 and 2.6.17-rc6.
Comments would be very welcome.
I am also working on a NAPI version of the pcnet32 driver for many of
the same reasons, and will compare what you have with my own
implementation. I probably won't be able to do much until Friday.
Just a couple of comments. I am adding netdev@xxxxxxxxxxxxxxx to the cc
list, as most network driver discussion is done here rather than lkml.
linux-kernel (and linux-net) should be deleted in future replies.
The 2.6.17-rc6 would be the correct source to patch against. Since this
is an enhancement it will not come out till 2.6.18.
I would not change the driver name from pcnet32 to pcnet32napi, but I
would changes the version from 1.32 to 1.33NAPI or something like that.
Some areas of concern that you may have addressed already, I have not
scanned your changes yet, are what happens if the ring size is changed
without bringing down the interface (via ethtool), or if the loopback
test is run in a similar fashion, or a tx timeout occurs.
The lp->lock MUST be held whenever accessing the csr or bcr registers as
this is a multi-step process, and has been the source of problems in the
past. Even on UP systems.
Signed-off-by: Len Sorensen <lsorense@xxxxxxxxxxxxxxxxxxx>
Len Sorensen
--
Don Fry
brazilnut@xxxxxxxxxx
-
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/
- Follow-Ups:
- Re: [PATCH] pcnet32 driver NAPI support
- From: Lennart Sorensen
- Re: [PATCH] pcnet32 driver NAPI support
- References:
- [PATCH] pcnet32 driver NAPI support
- From: Lennart Sorensen
- [PATCH] pcnet32 driver NAPI support
- Prev by Date: Re: [Alsa-devel] [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast
- Next by Date: [PATCH] RTC: Ensure that time being passed to set_alarm() is valid.
- Previous by thread: [PATCH] pcnet32 driver NAPI support
- Next by thread: Re: [PATCH] pcnet32 driver NAPI support
- Index(es):
Relevant Pages
|