diff options
author | Benjamin LaHaise <ben.lahaise@neterion.com> | 2009-08-04 06:21:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-05 16:10:45 -0400 |
commit | 3f23e436d241ac1cf50a659228a5a0e1e6572c1a (patch) | |
tree | eca045a10b9d536362f3a4f654da5c740a416e85 /drivers/net/vxge/vxge-main.c | |
parent | ff1b974cf30b282f90993ab658e59b73c152c0b8 (diff) |
vxge: prefetch RxD descriptors
This patch prefetches RxD descriptors which helps to lower the latency of a
cache miss in vxge_hw_ring_rxd_next_completed. This lowers the % of CPU
time used by vxge_hw_ring_rxd_next_completed() where the descriptor is
accessed in profiling netperf on a P4 Xeon from 1.5% to 1.0%.
Signed-off-by: Benjamin LaHaise <ben.lahaise@neterion.com>
Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vxge/vxge-main.c')
-rw-r--r-- | drivers/net/vxge/vxge-main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c index 4b22513bed40..e93651c19f59 100644 --- a/drivers/net/vxge/vxge-main.c +++ b/drivers/net/vxge/vxge-main.c | |||
@@ -445,6 +445,7 @@ vxge_rx_1b_compl(struct __vxge_hw_ring *ringh, void *dtr, | |||
445 | vxge_hw_ring_replenish(ringh, 0); | 445 | vxge_hw_ring_replenish(ringh, 0); |
446 | 446 | ||
447 | do { | 447 | do { |
448 | prefetch((char *)dtr + L1_CACHE_BYTES); | ||
448 | rx_priv = vxge_hw_ring_rxd_private_get(dtr); | 449 | rx_priv = vxge_hw_ring_rxd_private_get(dtr); |
449 | skb = rx_priv->skb; | 450 | skb = rx_priv->skb; |
450 | data_size = rx_priv->data_size; | 451 | data_size = rx_priv->data_size; |