• Santiago Leon's avatar
    [PATCH] ibmveth fix buffer replenishing · e2adbcb4
    Santiago Leon authored
    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: default avatarSantiago Leon <santil@us.ibm.com>
    Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
    e2adbcb4
ibmveth.c 35.2 KB