There is a cache miss when accessing mbuf->data_off while cloning
a batch and using prefetch improved the throughput by ~2.3%.
Before: 13709416.30 pps
After: 14031475.80 pps
Fixes: d48771848560 ("dp-packet: preserve headroom when cloning a pkt batch")
Signed-off-by: Flavio Leitner <[email protected]>
---
lib/dp-packet.h | 4 ++++
1 file changed, 4 insertions(+)
* This patch applies for branch-2.13 as well.
diff --git a/lib/dp-packet.h b/lib/dp-packet.h
index 69ae5dfac..387f51261 100644
--- a/lib/dp-packet.h
+++ b/lib/dp-packet.h
@@ -1046,6 +1046,10 @@ dp_packet_batch_clone(struct dp_packet_batch *dst,
dp_packet_batch_init(dst);
DP_PACKET_BATCH_FOR_EACH (i, packet, src) {
+ if ((i + 1) < dp_packet_batch_size(src)) {
+ OVS_PREFETCH(src->packets[i+1]);
+ }
+
uint32_t headroom = dp_packet_headroom(packet);
struct dp_packet *pkt_clone;
--
2.24.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev