diff options
author | Klement Sekera <ksekera@cisco.com> | 2020-06-08 11:28:53 +0000 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2020-06-10 09:48:47 +0000 |
commit | d6ba3ca2517a77f3177a29abae3642b2b686b26b (patch) | |
tree | 08a31b86a9495cb728f6fb7227ad04615db19a72 | |
parent | b660a0e5b23ff40462467304fea7d3b92bf70f4f (diff) |
nat: optimize prefetching
Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Iea1748e8e39d213fcb3f3b52379bd37a6dd6aa3d
-rw-r--r-- | src/plugins/nat/in2out.c | 4 | ||||
-rw-r--r-- | src/plugins/nat/nat44_handoff.c | 16 | ||||
-rw-r--r-- | src/plugins/nat/nat_det_in2out.c | 4 | ||||
-rw-r--r-- | src/plugins/nat/nat_det_out2in.c | 4 | ||||
-rw-r--r-- | src/plugins/nat/nat_inlines.h | 4 | ||||
-rw-r--r-- | src/plugins/nat/out2in.c | 4 |
6 files changed, 18 insertions, 18 deletions
diff --git a/src/plugins/nat/in2out.c b/src/plugins/nat/in2out.c index 0d702711ffd..7ed0a225fef 100644 --- a/src/plugins/nat/in2out.c +++ b/src/plugins/nat/in2out.c @@ -926,8 +926,8 @@ snat_in2out_node_fn_inline (vlib_main_t * vm, vlib_prefetch_buffer_header (p2, LOAD); vlib_prefetch_buffer_header (p3, LOAD); - CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE); + CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, LOAD); } /* speculatively enqueue b0 and b1 to the current next frame */ diff --git a/src/plugins/nat/nat44_handoff.c b/src/plugins/nat/nat44_handoff.c index 69b3b6083a7..69cdc42870f 100644 --- a/src/plugins/nat/nat44_handoff.c +++ b/src/plugins/nat/nat44_handoff.c @@ -108,14 +108,14 @@ nat44_worker_handoff_fn_inline (vlib_main_t * vm, if (PREDICT_TRUE (n_left_from >= 8)) { - vlib_prefetch_buffer_header (b[4], STORE); - vlib_prefetch_buffer_header (b[5], STORE); - vlib_prefetch_buffer_header (b[6], STORE); - vlib_prefetch_buffer_header (b[7], STORE); - CLIB_PREFETCH (&b[4]->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (&b[5]->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (&b[6]->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (&b[7]->data, CLIB_CACHE_LINE_BYTES, STORE); + vlib_prefetch_buffer_header (b[4], LOAD); + vlib_prefetch_buffer_header (b[5], LOAD); + vlib_prefetch_buffer_header (b[6], LOAD); + vlib_prefetch_buffer_header (b[7], LOAD); + CLIB_PREFETCH (&b[4]->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (&b[5]->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (&b[6]->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (&b[7]->data, CLIB_CACHE_LINE_BYTES, LOAD); } if (is_output) diff --git a/src/plugins/nat/nat_det_in2out.c b/src/plugins/nat/nat_det_in2out.c index b9b940559b6..74b4149ba8f 100644 --- a/src/plugins/nat/nat_det_in2out.c +++ b/src/plugins/nat/nat_det_in2out.c @@ -301,8 +301,8 @@ VLIB_NODE_FN (snat_det_in2out_node) (vlib_main_t * vm, vlib_prefetch_buffer_header (p2, LOAD); vlib_prefetch_buffer_header (p3, LOAD); - CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE); + CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, LOAD); } /* speculatively enqueue b0 and b1 to the current next frame */ diff --git a/src/plugins/nat/nat_det_out2in.c b/src/plugins/nat/nat_det_out2in.c index 5ca2afb1b82..6a133bcb47a 100644 --- a/src/plugins/nat/nat_det_out2in.c +++ b/src/plugins/nat/nat_det_out2in.c @@ -273,8 +273,8 @@ VLIB_NODE_FN (snat_det_out2in_node) (vlib_main_t * vm, vlib_prefetch_buffer_header (p2, LOAD); vlib_prefetch_buffer_header (p3, LOAD); - CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE); + CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, LOAD); } /* speculatively enqueue b0 and b1 to the current next frame */ diff --git a/src/plugins/nat/nat_inlines.h b/src/plugins/nat/nat_inlines.h index 76dd9a70002..240ff0e7da9 100644 --- a/src/plugins/nat/nat_inlines.h +++ b/src/plugins/nat/nat_inlines.h @@ -135,8 +135,8 @@ nat_pre_node_fn_inline (vlib_main_t * vm, vlib_prefetch_buffer_header (p2, LOAD); vlib_prefetch_buffer_header (p3, LOAD); - CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE); + CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, LOAD); } /* speculatively enqueue b0 and b1 to the current next frame */ diff --git a/src/plugins/nat/out2in.c b/src/plugins/nat/out2in.c index faf5d7315f4..57e658ba0c4 100644 --- a/src/plugins/nat/out2in.c +++ b/src/plugins/nat/out2in.c @@ -780,8 +780,8 @@ VLIB_NODE_FN (snat_out2in_node) (vlib_main_t * vm, vlib_prefetch_buffer_header (p2, LOAD); vlib_prefetch_buffer_header (p3, LOAD); - CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE); - CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE); + CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, LOAD); + CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, LOAD); } /* speculatively enqueue b0 and b1 to the current next frame */ |