Staging: Octeon: Free transmit SKBs in a timely manner
authorDavid Daney <ddaney@caviumnetworks.com>
Mon, 15 Feb 2010 23:06:47 +0000 (15:06 -0800)
committerRalf Baechle <ralf@linux-mips.org>
Sat, 27 Feb 2010 11:53:30 +0000 (12:53 +0100)
commit4898c560103fb8075c10a8e9d70e0ca26873075e
tree9d2122e65326bef1b8bde2ce089c4e47e9e5c2ae
parent86568dc41e8c7edcf6d014a64d143536d24b6a5d
Staging: Octeon:  Free transmit SKBs in a timely manner

If we wait for the once-per-second cleanup to free transmit SKBs,
sockets with small transmit buffer sizes might spend most of their
time blocked waiting for the cleanup.

Normally we do a cleanup for each transmitted packet.  We add a
watchdog type timer so that we also schedule a timeout for 150uS after
a packet is transmitted.  The watchdog is reset for each transmitted
packet, so for high packet rates, it never expires.  At these high
rates, the cleanups are done for each packet so the extra watchdog
initiated cleanups are neither needed nor triggered.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
To: linux-mips@linux-mips.org
To: netdev@vger.kernel.org
To: gregkh@suse.de
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Patchwork: http://patchwork.linux-mips.org/patch/968/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This version has spelling and comment changes based on feedback from
Eric Dumazet.
drivers/staging/octeon/Kconfig
drivers/staging/octeon/ethernet-defines.h
drivers/staging/octeon/ethernet-tx.c
drivers/staging/octeon/ethernet-tx.h
drivers/staging/octeon/ethernet.c
drivers/staging/octeon/octeon-ethernet.h