[v2,8/8] examples: remove unnecessary include of atomic

Message ID 20210823054952.15001-9-joyce.kong@arm.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series use compiler atomic builtins for examples |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing warning Testing issues
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing fail Testing issues
ci/iol-aarch64-unit-testing fail Testing issues
ci/intel-Testing success Testing PASS

Commit Message

Joyce Kong Aug. 23, 2021, 5:49 a.m. UTC
  Remove the unnecessary header file rte_atomic.h
included in example module.

Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 examples/bond/main.c                                       | 1 -
 examples/ip_fragmentation/main.c                           | 1 -
 examples/ip_reassembly/main.c                              | 1 -
 examples/ipsec-secgw/ipsec-secgw.c                         | 1 -
 examples/ipv4_multicast/main.c                             | 1 -
 examples/l2fwd-crypto/main.c                               | 1 -
 examples/l2fwd-event/l2fwd_common.h                        | 1 -
 examples/l2fwd-event/l2fwd_event.c                         | 1 -
 examples/l2fwd-keepalive/main.c                            | 1 -
 examples/l2fwd/main.c                                      | 1 -
 examples/l3fwd-acl/main.c                                  | 1 -
 examples/l3fwd-power/main.c                                | 1 -
 examples/l3fwd/main.c                                      | 1 -
 examples/link_status_interrupt/main.c                      | 1 -
 examples/multi_process/client_server_mp/mp_client/client.c | 1 -
 examples/multi_process/client_server_mp/mp_server/init.c   | 1 -
 examples/multi_process/simple_mp/main.c                    | 1 -
 examples/multi_process/simple_mp/mp_commands.c             | 1 -
 examples/multi_process/symmetric_mp/main.c                 | 1 -
 examples/server_node_efd/node/node.c                       | 1 -
 examples/server_node_efd/server/init.c                     | 1 -
 examples/vhost_blk/blk.c                                   | 1 -
 examples/vhost_blk/vhost_blk.c                             | 1 -
 examples/vm_power_manager/channel_manager.c                | 1 -
 examples/vm_power_manager/channel_manager.h                | 1 -
 examples/vmdq/main.c                                       | 1 -
 examples/vmdq_dcb/main.c                                   | 1 -
 27 files changed, 27 deletions(-)
  

Comments

Chenbo Xia Aug. 23, 2021, 11:29 a.m. UTC | #1
Hi Joyce,

> -----Original Message-----
> From: Joyce Kong <joyce.kong@arm.com>
> Sent: Monday, August 23, 2021 1:50 PM
> To: Chas Williams <chas3@att.com>; Min Hu (Connor) <humin29@huawei.com>;
> Ananyev, Konstantin <konstantin.ananyev@intel.com>; Nicolau, Radu
> <radu.nicolau@intel.com>; Akhil Goyal <gakhil@marvell.com>; Doherty, Declan
> <declan.doherty@intel.com>; Sunil Kumar Kori <skori@marvell.com>; Pavan
> Nikhilesh <pbhagavatula@marvell.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; Hunt, David <david.hunt@intel.com>; Burakov,
> Anatoly <anatoly.burakov@intel.com>; Marohn, Byron <byron.marohn@intel.com>;
> Wang, Yipeng1 <yipeng1.wang@intel.com>; Maxime Coquelin
> <maxime.coquelin@redhat.com>; Xia, Chenbo <chenbo.xia@intel.com>
> Cc: dev@dpdk.org; thomas@monjalon.net; david.marchand@redhat.com;
> honnappa.nagarahalli@arm.com; ruifeng.wang@arm.com; nd@arm.com
> Subject: [PATCH v2 8/8] examples: remove unnecessary include of atomic
> 
> Remove the unnecessary header file rte_atomic.h
> included in example module.
> 
> Signed-off-by: Joyce Kong <joyce.kong@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
>  examples/bond/main.c                                       | 1 -
>  examples/ip_fragmentation/main.c                           | 1 -
>  examples/ip_reassembly/main.c                              | 1 -
>  examples/ipsec-secgw/ipsec-secgw.c                         | 1 -
>  examples/ipv4_multicast/main.c                             | 1 -
>  examples/l2fwd-crypto/main.c                               | 1 -
>  examples/l2fwd-event/l2fwd_common.h                        | 1 -
>  examples/l2fwd-event/l2fwd_event.c                         | 1 -
>  examples/l2fwd-keepalive/main.c                            | 1 -
>  examples/l2fwd/main.c                                      | 1 -
>  examples/l3fwd-acl/main.c                                  | 1 -
>  examples/l3fwd-power/main.c                                | 1 -
>  examples/l3fwd/main.c                                      | 1 -
>  examples/link_status_interrupt/main.c                      | 1 -
>  examples/multi_process/client_server_mp/mp_client/client.c | 1 -
>  examples/multi_process/client_server_mp/mp_server/init.c   | 1 -
>  examples/multi_process/simple_mp/main.c                    | 1 -
>  examples/multi_process/simple_mp/mp_commands.c             | 1 -
>  examples/multi_process/symmetric_mp/main.c                 | 1 -
>  examples/server_node_efd/node/node.c                       | 1 -
>  examples/server_node_efd/server/init.c                     | 1 -
>  examples/vhost_blk/blk.c                                   | 1 -
>  examples/vhost_blk/vhost_blk.c                             | 1 -

In vhost_blk.c, some atomic API is used (rte_atomic_thread_fence).
Although it compiles well, I think it's better to keep the include
rather than depending on other header includes rte_atomic.h.

Thanks,
Chenbo

>  examples/vm_power_manager/channel_manager.c                | 1 -
>  examples/vm_power_manager/channel_manager.h                | 1 -
>  examples/vmdq/main.c                                       | 1 -
>  examples/vmdq_dcb/main.c                                   | 1 -
>  27 files changed, 27 deletions(-)
  
Joyce Kong Aug. 24, 2021, 2:30 a.m. UTC | #2
<snip>

> Hi Joyce,
> 
> > -----Original Message-----
> > From: Joyce Kong <joyce.kong@arm.com>
> > Sent: Monday, August 23, 2021 1:50 PM
> > To: Chas Williams <chas3@att.com>; Min Hu (Connor)
> > <humin29@huawei.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; Nicolau, Radu
> > <radu.nicolau@intel.com>; Akhil Goyal <gakhil@marvell.com>; Doherty,
> > Declan <declan.doherty@intel.com>; Sunil Kumar Kori
> > <skori@marvell.com>; Pavan Nikhilesh <pbhagavatula@marvell.com>;
> > Richardson, Bruce <bruce.richardson@intel.com>; Hunt, David
> > <david.hunt@intel.com>; Burakov, Anatoly <anatoly.burakov@intel.com>;
> > Marohn, Byron <byron.marohn@intel.com>; Wang, Yipeng1
> > <yipeng1.wang@intel.com>; Maxime Coquelin
> > <maxime.coquelin@redhat.com>; Xia, Chenbo <chenbo.xia@intel.com>
> > Cc: dev@dpdk.org; thomas@monjalon.net; david.marchand@redhat.com;
> > honnappa.nagarahalli@arm.com; ruifeng.wang@arm.com; nd@arm.com
> > Subject: [PATCH v2 8/8] examples: remove unnecessary include of atomic
> >
> > Remove the unnecessary header file rte_atomic.h included in example
> > module.
> >
> > Signed-off-by: Joyce Kong <joyce.kong@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> >  examples/bond/main.c                                       | 1 -
> >  examples/ip_fragmentation/main.c                           | 1 -
> >  examples/ip_reassembly/main.c                              | 1 -
> >  examples/ipsec-secgw/ipsec-secgw.c                         | 1 -
> >  examples/ipv4_multicast/main.c                             | 1 -
> >  examples/l2fwd-crypto/main.c                               | 1 -
> >  examples/l2fwd-event/l2fwd_common.h                        | 1 -
> >  examples/l2fwd-event/l2fwd_event.c                         | 1 -
> >  examples/l2fwd-keepalive/main.c                            | 1 -
> >  examples/l2fwd/main.c                                      | 1 -
> >  examples/l3fwd-acl/main.c                                  | 1 -
> >  examples/l3fwd-power/main.c                                | 1 -
> >  examples/l3fwd/main.c                                      | 1 -
> >  examples/link_status_interrupt/main.c                      | 1 -
> >  examples/multi_process/client_server_mp/mp_client/client.c | 1 -
> >  examples/multi_process/client_server_mp/mp_server/init.c   | 1 -
> >  examples/multi_process/simple_mp/main.c                    | 1 -
> >  examples/multi_process/simple_mp/mp_commands.c             | 1 -
> >  examples/multi_process/symmetric_mp/main.c                 | 1 -
> >  examples/server_node_efd/node/node.c                       | 1 -
> >  examples/server_node_efd/server/init.c                     | 1 -
> >  examples/vhost_blk/blk.c                                   | 1 -
> >  examples/vhost_blk/vhost_blk.c                             | 1 -
> 
> In vhost_blk.c, some atomic API is used (rte_atomic_thread_fence).
> Although it compiles well, I think it's better to keep the include rather than
> depending on other header includes rte_atomic.h.
> 
> Thanks,
> Chenbo
> 

Hi Chenbo, thanks for your suggestion, I'll rework with this patch in next version.

Joyce

> >  examples/vm_power_manager/channel_manager.c                | 1 -
> >  examples/vm_power_manager/channel_manager.h                | 1 -
> >  examples/vmdq/main.c                                       | 1 -
> >  examples/vmdq_dcb/main.c                                   | 1 -
> >  27 files changed, 27 deletions(-)
  

Patch

diff --git a/examples/bond/main.c b/examples/bond/main.c
index f48400e211..de1e995a8a 100644
--- a/examples/bond/main.c
+++ b/examples/bond/main.c
@@ -24,7 +24,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c
index f245369720..f965624c8b 100644
--- a/examples/ip_fragmentation/main.c
+++ b/examples/ip_fragmentation/main.c
@@ -21,7 +21,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index 8645ac790b..6a8e91673d 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -22,7 +22,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c
index f252d34985..012b908410 100644
--- a/examples/ipsec-secgw/ipsec-secgw.c
+++ b/examples/ipsec-secgw/ipsec-secgw.c
@@ -24,7 +24,6 @@ 
 #include <rte_log.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index cc527d7f6b..5830ad61c1 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -20,7 +20,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c
index 5f539c458c..e302ad022c 100644
--- a/examples/l2fwd-crypto/main.c
+++ b/examples/l2fwd-crypto/main.c
@@ -20,7 +20,6 @@ 
 #include <unistd.h>
 
 #include <rte_string_fns.h>
-#include <rte_atomic.h>
 #include <rte_branch_prediction.h>
 #include <rte_common.h>
 #include <rte_cryptodev.h>
diff --git a/examples/l2fwd-event/l2fwd_common.h b/examples/l2fwd-event/l2fwd_common.h
index 939221d45a..1a418e6a22 100644
--- a/examples/l2fwd-event/l2fwd_common.h
+++ b/examples/l2fwd-event/l2fwd_common.h
@@ -27,7 +27,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/l2fwd-event/l2fwd_event.c b/examples/l2fwd-event/l2fwd_event.c
index 7ba5311d66..acfacfa4fb 100644
--- a/examples/l2fwd-event/l2fwd_event.c
+++ b/examples/l2fwd-event/l2fwd_event.c
@@ -5,7 +5,6 @@ 
 #include <stdbool.h>
 #include <getopt.h>
 
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_ethdev.h>
 #include <rte_eventdev.h>
diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c
index 4e1a17cfe4..cb7f267259 100644
--- a/examples/l2fwd-keepalive/main.c
+++ b/examples/l2fwd-keepalive/main.c
@@ -24,7 +24,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
index 911e40c66e..56a0663111 100644
--- a/examples/l2fwd/main.c
+++ b/examples/l2fwd/main.c
@@ -24,7 +24,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c
index a1f457b564..2a942731bc 100644
--- a/examples/l3fwd-acl/main.c
+++ b/examples/l3fwd-acl/main.c
@@ -20,7 +20,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index aa7b8db44a..c29b4fe034 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -24,7 +24,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index 00ac267af1..518fefe90b 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -24,7 +24,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
index 7470aa539a..302a267e0e 100644
--- a/examples/link_status_interrupt/main.c
+++ b/examples/link_status_interrupt/main.c
@@ -22,7 +22,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/multi_process/client_server_mp/mp_client/client.c b/examples/multi_process/client_server_mp/mp_client/client.c
index 6d4c246816..087c38ef73 100644
--- a/examples/multi_process/client_server_mp/mp_client/client.c
+++ b/examples/multi_process/client_server_mp/mp_client/client.c
@@ -17,7 +17,6 @@ 
 #include <rte_memory.h>
 #include <rte_memzone.h>
 #include <rte_eal.h>
-#include <rte_atomic.h>
 #include <rte_branch_prediction.h>
 #include <rte_log.h>
 #include <rte_per_lcore.h>
diff --git a/examples/multi_process/client_server_mp/mp_server/init.c b/examples/multi_process/client_server_mp/mp_server/init.c
index 1ad71ca7ec..be669c2bcc 100644
--- a/examples/multi_process/client_server_mp/mp_server/init.c
+++ b/examples/multi_process/client_server_mp/mp_server/init.c
@@ -15,7 +15,6 @@ 
 #include <rte_memzone.h>
 #include <rte_eal.h>
 #include <rte_byteorder.h>
-#include <rte_atomic.h>
 #include <rte_launch.h>
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
diff --git a/examples/multi_process/simple_mp/main.c b/examples/multi_process/simple_mp/main.c
index df996f0f84..5df2a39000 100644
--- a/examples/multi_process/simple_mp/main.c
+++ b/examples/multi_process/simple_mp/main.c
@@ -30,7 +30,6 @@ 
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
 #include <rte_debug.h>
-#include <rte_atomic.h>
 #include <rte_branch_prediction.h>
 #include <rte_ring.h>
 #include <rte_log.h>
diff --git a/examples/multi_process/simple_mp/mp_commands.c b/examples/multi_process/simple_mp/mp_commands.c
index 311d0fe775..a5f91b00be 100644
--- a/examples/multi_process/simple_mp/mp_commands.c
+++ b/examples/multi_process/simple_mp/mp_commands.c
@@ -14,7 +14,6 @@ 
 #include <rte_common.h>
 #include <rte_memory.h>
 #include <rte_eal.h>
-#include <rte_atomic.h>
 #include <rte_branch_prediction.h>
 #include <rte_launch.h>
 #include <rte_log.h>
diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c
index 01dc3acf34..a66328ba0c 100644
--- a/examples/multi_process/symmetric_mp/main.c
+++ b/examples/multi_process/symmetric_mp/main.c
@@ -31,7 +31,6 @@ 
 #include <rte_eal.h>
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
-#include <rte_atomic.h>
 #include <rte_branch_prediction.h>
 #include <rte_debug.h>
 #include <rte_interrupts.h>
diff --git a/examples/server_node_efd/node/node.c b/examples/server_node_efd/node/node.c
index 4580a44e3e..ba1c7e5153 100644
--- a/examples/server_node_efd/node/node.c
+++ b/examples/server_node_efd/node/node.c
@@ -17,7 +17,6 @@ 
 #include <rte_memory.h>
 #include <rte_memzone.h>
 #include <rte_eal.h>
-#include <rte_atomic.h>
 #include <rte_branch_prediction.h>
 #include <rte_log.h>
 #include <rte_per_lcore.h>
diff --git a/examples/server_node_efd/server/init.c b/examples/server_node_efd/server/init.c
index 9ebd88bac2..a19934dbe0 100644
--- a/examples/server_node_efd/server/init.c
+++ b/examples/server_node_efd/server/init.c
@@ -15,7 +15,6 @@ 
 #include <rte_memzone.h>
 #include <rte_eal.h>
 #include <rte_byteorder.h>
-#include <rte_atomic.h>
 #include <rte_launch.h>
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
diff --git a/examples/vhost_blk/blk.c b/examples/vhost_blk/blk.c
index f8c8549b3a..d082ab3c94 100644
--- a/examples/vhost_blk/blk.c
+++ b/examples/vhost_blk/blk.c
@@ -15,7 +15,6 @@ 
 #include <string.h>
 #include <stddef.h>
 
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_log.h>
 #include <rte_malloc.h>
diff --git a/examples/vhost_blk/vhost_blk.c b/examples/vhost_blk/vhost_blk.c
index fe2b4e4803..9e291dc442 100644
--- a/examples/vhost_blk/vhost_blk.c
+++ b/examples/vhost_blk/vhost_blk.c
@@ -17,7 +17,6 @@ 
 #include <linux/virtio_blk.h>
 #include <linux/virtio_ring.h>
 
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_log.h>
 #include <rte_malloc.h>
diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c
index fe91567854..838465ab4b 100644
--- a/examples/vm_power_manager/channel_manager.c
+++ b/examples/vm_power_manager/channel_manager.c
@@ -21,7 +21,6 @@ 
 #include <rte_memory.h>
 #include <rte_mempool.h>
 #include <rte_log.h>
-#include <rte_atomic.h>
 #include <rte_spinlock.h>
 
 #include <libvirt/libvirt.h>
diff --git a/examples/vm_power_manager/channel_manager.h b/examples/vm_power_manager/channel_manager.h
index e55376fcdb..7038e9d83b 100644
--- a/examples/vm_power_manager/channel_manager.h
+++ b/examples/vm_power_manager/channel_manager.h
@@ -11,7 +11,6 @@  extern "C" {
 
 #include <linux/limits.h>
 #include <linux/un.h>
-#include <rte_atomic.h>
 #include <stdbool.h>
 
 /* Maximum name length including '\0' terminator */
diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index d3bc19f78e..a958ad2167 100644
--- a/examples/vmdq/main.c
+++ b/examples/vmdq/main.c
@@ -20,7 +20,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>
diff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c
index 685a03bdd1..52e930f83a 100644
--- a/examples/vmdq_dcb/main.c
+++ b/examples/vmdq_dcb/main.c
@@ -20,7 +20,6 @@ 
 #include <rte_memcpy.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
-#include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_prefetch.h>
 #include <rte_lcore.h>