From 08ba422739c1ae77be84cfd2531f331df17d8628 Mon Sep 17 00:00:00 2001 From: Vladislav Grishenko Date: Mon, 10 Apr 2023 18:02:12 +0500 Subject: fib: fix mpls label dpo packets prefetching Four packets are batched after 696e88da9799056036f329676213f3c0c0a1db9c, so prefetch is required for the next 4-7 packets, not for 2-5. Type: fix Signed-off-by: Vladislav Grishenko Change-Id: I4ab01e66c3b446caf113a154915473e96ab32198 --- src/vnet/dpo/mpls_label_dpo.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/vnet/dpo/mpls_label_dpo.c b/src/vnet/dpo/mpls_label_dpo.c index 7856f050cb0..898ea9246e4 100644 --- a/src/vnet/dpo/mpls_label_dpo.c +++ b/src/vnet/dpo/mpls_label_dpo.c @@ -398,22 +398,22 @@ mpls_label_imposition_inline (vlib_main_t * vm, /* Prefetch next iteration. */ { - vlib_buffer_t * p2, * p3, *p4, *p5; - - p2 = vlib_get_buffer (vm, from[2]); - p3 = vlib_get_buffer (vm, from[3]); - p4 = vlib_get_buffer (vm, from[4]); - p5 = vlib_get_buffer (vm, from[5]); - - vlib_prefetch_buffer_header (p2, STORE); - vlib_prefetch_buffer_header (p3, STORE); - vlib_prefetch_buffer_header (p4, STORE); - vlib_prefetch_buffer_header (p5, STORE); - - CLIB_PREFETCH (p2->data, sizeof (hdr0[0]), STORE); - CLIB_PREFETCH (p3->data, sizeof (hdr0[0]), STORE); - CLIB_PREFETCH (p4->data, sizeof (hdr0[0]), STORE); - CLIB_PREFETCH (p5->data, sizeof (hdr0[0]), STORE); + vlib_buffer_t *p4, *p5, *p6, *p7; + + p4 = vlib_get_buffer (vm, from[4]); + p5 = vlib_get_buffer (vm, from[5]); + p6 = vlib_get_buffer (vm, from[6]); + p7 = vlib_get_buffer (vm, from[7]); + + vlib_prefetch_buffer_header (p4, STORE); + vlib_prefetch_buffer_header (p5, STORE); + vlib_prefetch_buffer_header (p6, STORE); + vlib_prefetch_buffer_header (p7, STORE); + + CLIB_PREFETCH (p4->data, sizeof (hdr0[0]), STORE); + CLIB_PREFETCH (p5->data, sizeof (hdr0[0]), STORE); + CLIB_PREFETCH (p6->data, sizeof (hdr0[0]), STORE); + CLIB_PREFETCH (p7->data, sizeof (hdr0[0]), STORE); } from += 4; -- cgit 1.2.3-korg