rx-fpq-bulk-free-20050529
authorTom Keiser <tkeiser@psu.edu>
Mon, 30 May 2005 04:39:50 +0000 (04:39 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Mon, 30 May 2005 04:39:50 +0000 (04:39 +0000)
commitd049ca2ae4e7708df028fca739c2a35ccb906bfb
tree439e63db49678d6555e47bc4c145afd51c2c4946
parent985171769d01bfa8cd583e75c08d13949ac201fc
rx-fpq-bulk-free-20050529

FIXES 19027

After profiling RX for a while, I've found a few more bottlenecks in the
packet handling code.  This patch addresses a couple of these issues.
The major change in this patch is a new API to allow bulk packet
alloc/free ops on rx_queue's of packets.  Benefits include reduced lock
contention on rx_freePktQ_lock, elimination of a lot of unnecessary cache
line invalidates, and reduced register window thrashing on sparc.

In addition, this patch dedicates one rx_packet per thread to rxi_SendAck,
since that function is in the critical path, and represents a large
percentage of execution time.
src/rx/rx.c
src/rx/rx_globals.h
src/rx/rx_packet.c
src/rx/rx_packet.h
src/rx/rx_prototypes.h
src/rx/rx_rdwr.c