vxge: prefetch RxD descriptors
Subsystems (2)
PATCH 4/6 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 <[email protected]>
Signed-off-by Sreenivasa Honnur <[email protected]>
Signed-off-by Ramkrishna Vepa <[email protected]>
---
drivers/net/vxge/vxge-main.c renamed from drivers/net/vxge/vxge-main.c.orig +1 -0
@@ -445,6 +431,7 @@ vxge_rx_1b_compl(struct __vxge_hw_ring *vxge_hw_ring_replenish (ringh,0 ); do { + prefetch((char *)dtr + L1_CACHE_BYTES); rx_priv = vxge_hw_ring_rxd_private_get(dtr); skb = rx_priv->skb; data_size = rx_priv->data_size;
drivers/net/vxge/vxge-traffic.c +1 -0
@@ -731,6 +731,7 @@ vxge_hw_channel_dtr_try_complete(struct __vxge_hw_channel *channel, void **dtrh)vxge_assert (channel->compl_index < channel->length); *dtrh = channel->work_arr[channel->compl_index]; +prefetch (*dtrh); }/*