[PATCH] ibmveth fix buffer replenishing
authorSantiago Leon <santil@us.ibm.com>
Wed, 26 Oct 2005 16:47:08 +0000 (10:47 -0600)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 28 Oct 2005 20:07:30 +0000 (16:07 -0400)
commite2adbcb480992de8a01acf9218e8bbd9b507fc6f
tree92465e753d0221c0c54862994735a7fe078200fa
parentb6d35182fe62e57d368062adcc880ca35119d88e
[PATCH] ibmveth fix buffer replenishing

This patch removes the allocation of RX skb's  buffers from a workqueue
to be called directly at RX processing time.  This change was suggested
by Dave Miller when the driver was starving the RX buffers and
deadlocking under heavy traffic:

> Allocating RX SKBs via tasklet is, IMHO, the worst way to
> do it.  It is no surprise that there are starvation cases.
>
> If tasklets or work queues get delayed in any way, you lose,
> and it's very easy for a card to catch up with the driver RX'ing
> packets very fast, no matter how aggressive you make the
> replenishing.  By the time you detect that you need to be
> "more aggressive" it is already too late.
> The only pseudo-reliable way is to allocate at RX processing time.
>

Signed-off-by: Santiago Leon <santil@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/ibmveth.c
drivers/net/ibmveth.h