MPLS prefetch fixes
[vpp.git] / src / vnet / mpls / mpls_lookup.c
index 30031e5..b13c65d 100644 (file)
@@ -103,22 +103,22 @@ mpls_lookup (vlib_main_t * vm,
 
            /* Prefetch next iteration. */
           {
-              vlib_buffer_t * p2, * p3, *p4, *p5;
+              vlib_buffer_t *p4, *p5, *p6, *p7;
 
-            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]);
+            p6 = vlib_get_buffer (vm, from[6]);
+            p7 = vlib_get_buffer (vm, from[7]);
 
-            vlib_prefetch_buffer_header (p2, STORE);
-            vlib_prefetch_buffer_header (p3, STORE);
             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 (p2->data, sizeof (h0[0]), STORE);
-            CLIB_PREFETCH (p3->data, sizeof (h0[0]), STORE);
-            CLIB_PREFETCH (p4->data, sizeof (h0[0]), STORE);
-            CLIB_PREFETCH (p5->data, sizeof (h0[0]), STORE);
+            CLIB_PREFETCH (p4->data, sizeof (h0[0]), LOAD);
+            CLIB_PREFETCH (p5->data, sizeof (h0[0]), LOAD);
+            CLIB_PREFETCH (p6->data, sizeof (h0[0]), LOAD);
+            CLIB_PREFETCH (p7->data, sizeof (h0[0]), LOAD);
           }
 
           bi0 = to_next[0] = from[0];
@@ -538,8 +538,8 @@ mpls_load_balance (vlib_main_t * vm,
             vlib_prefetch_buffer_header (p2, STORE);
             vlib_prefetch_buffer_header (p3, STORE);
 
-            CLIB_PREFETCH (p2->data, sizeof (mpls0[0]), STORE);
-            CLIB_PREFETCH (p3->data, sizeof (mpls0[0]), STORE);
+            CLIB_PREFETCH (p2->data, sizeof (mpls0[0]), LOAD);
+            CLIB_PREFETCH (p3->data, sizeof (mpls0[0]), LOAD);
           }
 
           pi0 = to_next[0] = from[0];