[BUG][PATCH][2.4] Virtual Ethernet stops responding

Santiago Leon santil at us.ibm.com
Wed Nov 5 10:34:35 EST 2003


This trivial-looking patch fixes a race condition that permanently
disabled the virtual ethernet interrupts...  Engebretsen found this bug
while running netperf for 20+ hours...

The code deleted by this patch was supposed to check for an error
condition where an interrupt happened while interrupts were disabled. In
reality, it's checking if an interrupt happened while the
__LINK_STATE_RX_SCHED bit is set in dev->state.  The latter is normal
behavior for the driver (see "rotting packet race-window avoidance
scheme" in Documentation/net/NAPI_HOWTO.txt)... However, because this
code re-disables the interrupts, there's small window where another
processor or thread (that is executing the ibmveth_poll()), enables the
interrupts right before they get disabled by this code fragment.

I have tested this patch running netperf for 50+ hours...

This patch is against the latest 2.4 bk tree, but it also works with a
little fuzz in 2.5...

Opinions, comments and suggestions are welcome...
Santiago A. Leon
Power Linux Development
IBM Linux Technology Center
Off: (919) 254-6048  T/L: 444-6048  Fax: (919) 543-7378
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ibmveth.patch
Type: text/x-patch
Size: 564 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc64-dev/attachments/20031104/bba6a37d/attachment.bin 

More information about the Linuxppc64-dev mailing list