From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D7B2DA0A02 for ; Mon, 17 May 2021 18:15:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C221340041; Mon, 17 May 2021 18:15:38 +0200 (CEST) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by mails.dpdk.org (Postfix) with ESMTP id 6ADAC40041 for ; Mon, 17 May 2021 18:15:37 +0200 (CEST) Received: from 2.general.paelzer.uk.vpn ([10.172.196.173] helo=Keschdeichel.fritz.box) by youngberry.canonical.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lifu5-0008Ec-50; Mon, 17 May 2021 16:15:37 +0000 From: Christian Ehrhardt To: Chengchang Tang Cc: dpdk stable Date: Mon, 17 May 2021 18:09:18 +0200 Message-Id: <20210517161039.3132619-129-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210517161039.3132619-1-christian.ehrhardt@canonical.com> References: <20210517161039.3132619-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'examples: add eal cleanup to examples' has been queued to stable release 19.11.9 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/19/21. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/cpaelzer/dpdk-stable-queue This queued commit can be viewed at: https://github.com/cpaelzer/dpdk-stable-queue/commit/036cff489ea2c5b77de407d837090a708fd89307 Thanks. Christian Ehrhardt --- >From 036cff489ea2c5b77de407d837090a708fd89307 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Thu, 15 Apr 2021 10:26:03 +0800 Subject: [PATCH] examples: add eal cleanup to examples [ upstream commit 10aa375704c148d9e90b5e984066d719f7465357 ] According to the programming guide, the rte_eal_init should be used pairs with rte_eal_cleanup. This patch add rte_eal_cleanup to examples to encourage new users of DPDK to use it. Fixes: aec9c13c5257 ("eal: add function to release internal resources") Fixes: 3d0fad56b74a ("examples/fips_validation: add crypto FIPS application") Fixes: c8e6ceecebc1 ("examples/ioat: add new sample app for ioat driver") Fixes: 4ff457986f76 ("examples/l2fwd-event: add default poll mode routines") Fixes: 08bd1a174461 ("examples/l3fwd-graph: add graph-based l3fwd skeleton") Fixes: c5eebf85badc ("examples/ntb: add example for NTB") Fixes: b77f66002812 ("examples/pipeline: add new example application") Fixes: edbed86d1cc3 ("examples/vdpa: introduce a new sample for vDPA") Fixes: c19beb3f38cd ("examples/vhost_blk: introduce vhost storage sample") Fixes: f5188211c721 ("examples/vhost_crypto: add sample application") Signed-off-by: Chengchang Tang --- examples/bbdev_app/main.c | 3 +++ examples/bond/main.c | 4 ++++ examples/cmdline/main.c | 3 +++ examples/distributor/main.c | 3 +++ examples/ethtool/ethtool-app/main.c | 3 +++ examples/fips_validation/main.c | 3 +++ examples/flow_classify/flow_classify.c | 3 +++ examples/flow_filtering/main.c | 3 +++ examples/helloworld/main.c | 4 ++++ examples/ioat/ioatfwd.c | 3 +++ examples/ip_fragmentation/main.c | 3 +++ examples/ip_pipeline/main.c | 3 +++ examples/ip_reassembly/main.c | 3 +++ examples/ipsec-secgw/ipsec-secgw.c | 2 ++ examples/ipv4_multicast/main.c | 3 +++ examples/kni/main.c | 3 +++ examples/l2fwd-cat/l2fwd-cat.c | 3 +++ examples/l2fwd-crypto/main.c | 3 +++ examples/l2fwd-event/main.c | 3 +++ examples/l2fwd-jobstats/main.c | 3 +++ examples/l2fwd-keepalive/main.c | 4 ++++ examples/l2fwd/main.c | 3 +++ examples/l3fwd-acl/main.c | 3 +++ examples/l3fwd/main.c | 4 ++++ examples/link_status_interrupt/main.c | 3 +++ examples/multi_process/client_server_mp/mp_client/client.c | 3 +++ examples/multi_process/client_server_mp/mp_server/main.c | 4 ++++ examples/multi_process/simple_mp/main.c | 4 ++++ examples/multi_process/symmetric_mp/main.c | 3 +++ examples/ntb/ntb_fwd.c | 3 +++ examples/packet_ordering/main.c | 4 ++++ examples/performance-thread/l3fwd-thread/main.c | 3 +++ examples/performance-thread/pthread_shim/main.c | 4 ++++ examples/ptpclient/ptpclient.c | 3 +++ examples/qos_meter/main.c | 3 +++ examples/qos_sched/main.c | 3 +++ examples/rxtx_callbacks/main.c | 4 ++++ examples/server_node_efd/node/node.c | 3 +++ examples/server_node_efd/server/main.c | 4 ++++ examples/service_cores/main.c | 3 +++ examples/skeleton/basicfwd.c | 3 +++ examples/timer/main.c | 3 +++ examples/vdpa/main.c | 3 +++ examples/vhost/main.c | 4 +++- examples/vhost_blk/vhost_blk.c | 3 +++ examples/vhost_crypto/main.c | 3 +++ examples/vm_power_manager/guest_cli/main.c | 3 +++ examples/vm_power_manager/main.c | 3 +++ examples/vmdq/main.c | 3 +++ examples/vmdq_dcb/main.c | 3 +++ 50 files changed, 159 insertions(+), 1 deletion(-) diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c index db2dc33345..a5e69d5852 100644 --- a/examples/bbdev_app/main.c +++ b/examples/bbdev_app/main.c @@ -1171,5 +1171,8 @@ main(int argc, char **argv) ret |= rte_eal_wait_lcore(lcore_id); } + /* clean up the EAL */ + rte_eal_cleanup(); + return ret; } diff --git a/examples/bond/main.c b/examples/bond/main.c index ee8fa2d271..d4de4b9e68 100644 --- a/examples/bond/main.c +++ b/examples/bond/main.c @@ -879,5 +879,9 @@ main(int argc, char *argv[]) prompt(NULL); rte_delay_ms(100); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/cmdline/main.c b/examples/cmdline/main.c index f2f2e5a2f4..dd3bfab9d1 100644 --- a/examples/cmdline/main.c +++ b/examples/cmdline/main.c @@ -37,5 +37,8 @@ int main(int argc, char **argv) cmdline_interact(cl); cmdline_stdin_exit(cl); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/distributor/main.c b/examples/distributor/main.c index 567c5e9891..3f606a80a0 100644 --- a/examples/distributor/main.c +++ b/examples/distributor/main.c @@ -935,5 +935,8 @@ main(int argc, char *argv[]) rte_free(pd); rte_free(pr); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c index 29891012ac..608327170f 100644 --- a/examples/ethtool/ethtool-app/main.c +++ b/examples/ethtool/ethtool-app/main.c @@ -298,5 +298,8 @@ int main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c index eadfdb4bac..2f8238886b 100644 --- a/examples/fips_validation/main.c +++ b/examples/fips_validation/main.c @@ -433,6 +433,9 @@ exit: fips_test_clear(); cryptodev_fips_validate_app_uninit(); + /* clean up the EAL */ + rte_eal_cleanup(); + return ret; } diff --git a/examples/flow_classify/flow_classify.c b/examples/flow_classify/flow_classify.c index 1c12bbb2fd..060f0c9402 100644 --- a/examples/flow_classify/flow_classify.c +++ b/examples/flow_classify/flow_classify.c @@ -853,5 +853,8 @@ main(int argc, char *argv[]) /* Call lcore_main on the master core only. */ lcore_main(cls_app); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index cc9e7e7808..6188f9c6bb 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -256,5 +256,8 @@ main(int argc, char **argv) main_loop(); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/helloworld/main.c b/examples/helloworld/main.c index c922cfbad7..d2f262b86b 100644 --- a/examples/helloworld/main.c +++ b/examples/helloworld/main.c @@ -43,5 +43,9 @@ main(int argc, char **argv) lcore_hello(NULL); rte_eal_mp_wait_lcore(); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index 7971442b5d..087bdcf66a 100644 --- a/examples/ioat/ioatfwd.c +++ b/examples/ioat/ioatfwd.c @@ -1013,6 +1013,9 @@ main(int argc, char **argv) rte_ring_free(cfg.ports[i].rx_to_tx_ring); } + /* clean up the EAL */ + rte_eal_cleanup(); + printf("Bye...\n"); return 0; } diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 90e4d1ea4a..435b6eca61 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -1078,5 +1078,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/ip_pipeline/main.c b/examples/ip_pipeline/main.c index 97d1e91c2b..95051fca49 100644 --- a/examples/ip_pipeline/main.c +++ b/examples/ip_pipeline/main.c @@ -266,4 +266,7 @@ main(int argc, char **argv) kni_handle_request(); } + + /* clean up the EAL */ + rte_eal_cleanup(); } diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index 29b34d0710..89ff1a06b6 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -1207,5 +1207,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index 1493be9025..8e9b45493a 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -2543,5 +2543,7 @@ main(int32_t argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); return 0; } diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c index 09d9270aff..83bdeb7403 100644 --- a/examples/ipv4_multicast/main.c +++ b/examples/ipv4_multicast/main.c @@ -811,5 +811,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/kni/main.c b/examples/kni/main.c index 7edc73ab91..a696a83578 100644 --- a/examples/kni/main.c +++ b/examples/kni/main.c @@ -1120,5 +1120,8 @@ main(int argc, char** argv) kni_port_params_array[i] = NULL; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/l2fwd-cat/l2fwd-cat.c b/examples/l2fwd-cat/l2fwd-cat.c index 6838f288c6..87d6c930b6 100644 --- a/examples/l2fwd-cat/l2fwd-cat.c +++ b/examples/l2fwd-cat/l2fwd-cat.c @@ -201,5 +201,8 @@ main(int argc, char *argv[]) /* Call lcore_main on the master core only. */ lcore_main(); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index b09d017e46..063db823bd 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -2828,5 +2828,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/l2fwd-event/main.c b/examples/l2fwd-event/main.c index 7969a1c313..5bfdcf42ef 100644 --- a/examples/l2fwd-event/main.c +++ b/examples/l2fwd-event/main.c @@ -583,6 +583,9 @@ main(int argc, char **argv) printf(" Done\n"); } } + + /* clean up the EAL */ + rte_eal_cleanup(); printf("Bye...\n"); return 0; diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index c2180c2d1c..b50ba604eb 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -1028,5 +1028,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index ba2745c915..935987bf8f 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -823,5 +823,9 @@ main(int argc, char **argv) if (ka_shm != NULL) rte_keepalive_shm_cleanup(ka_shm); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index e3767a3159..1d850fcfc1 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -772,6 +772,9 @@ main(int argc, char **argv) rte_eth_dev_close(portid); printf(" Done\n"); } + + /* clean up the EAL */ + rte_eal_cleanup(); printf("Bye...\n"); return ret; diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c index cfbeee962b..430d42d103 100644 --- a/examples/l3fwd-acl/main.c +++ b/examples/l3fwd-acl/main.c @@ -2116,5 +2116,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index b98040df45..19722f0c4c 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -1093,6 +1093,10 @@ main(int argc, char **argv) rte_eth_dev_close(portid); printf(" Done\n"); } + + /* clean up the EAL */ + rte_eal_cleanup(); + printf("Bye...\n"); return ret; diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c index 6b8c153b58..26595bb47a 100644 --- a/examples/link_status_interrupt/main.c +++ b/examples/link_status_interrupt/main.c @@ -741,5 +741,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } 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 361d90b54b..6d4c246816 100644 --- a/examples/multi_process/client_server_mp/mp_client/client.c +++ b/examples/multi_process/client_server_mp/mp_client/client.c @@ -268,4 +268,7 @@ main(int argc, char *argv[]) need_flush = 1; } + + /* clean up the EAL */ + rte_eal_cleanup(); } diff --git a/examples/multi_process/client_server_mp/mp_server/main.c b/examples/multi_process/client_server_mp/mp_server/main.c index 1084b303ff..b349d90d92 100644 --- a/examples/multi_process/client_server_mp/mp_server/main.c +++ b/examples/multi_process/client_server_mp/mp_server/main.c @@ -304,5 +304,9 @@ main(int argc, char *argv[]) rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MASTER); do_packet_forwarding(); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/multi_process/simple_mp/main.c b/examples/multi_process/simple_mp/main.c index e6c69d6a33..0304c453ec 100644 --- a/examples/multi_process/simple_mp/main.c +++ b/examples/multi_process/simple_mp/main.c @@ -121,5 +121,9 @@ main(int argc, char **argv) cmdline_stdin_exit(cl); rte_eal_mp_wait_lcore(); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c index c5cd8825e5..a5ff1fee6e 100644 --- a/examples/multi_process/symmetric_mp/main.c +++ b/examples/multi_process/symmetric_mp/main.c @@ -475,5 +475,8 @@ main(int argc, char **argv) rte_eal_mp_remote_launch(lcore_main, NULL, CALL_MASTER); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c index 17eedcf0b8..4630ece311 100644 --- a/examples/ntb/ntb_fwd.c +++ b/examples/ntb/ntb_fwd.c @@ -1496,5 +1496,8 @@ main(int argc, char **argv) start_pkt_fwd(); } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c index 4eea8a3318..c9f645e67e 100644 --- a/examples/packet_ordering/main.c +++ b/examples/packet_ordering/main.c @@ -779,5 +779,9 @@ main(int argc, char **argv) } print_stats(); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index 96fbdcdde2..aee075f2d2 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -3783,5 +3783,8 @@ main(int argc, char **argv) } } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/performance-thread/pthread_shim/main.c b/examples/performance-thread/pthread_shim/main.c index 03ff394369..d137c49bb3 100644 --- a/examples/performance-thread/pthread_shim/main.c +++ b/examples/performance-thread/pthread_shim/main.c @@ -258,5 +258,9 @@ int main(int argc, char **argv) RTE_LCORE_FOREACH_SLAVE(lcore_id) { rte_eal_wait_lcore(lcore_id); } + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c index c5b0c79ed4..e13a491c27 100644 --- a/examples/ptpclient/ptpclient.c +++ b/examples/ptpclient/ptpclient.c @@ -784,5 +784,8 @@ main(int argc, char *argv[]) /* Call lcore_main on the master core only. */ lcore_main(); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c index e8112c83a2..03129c85f4 100644 --- a/examples/qos_meter/main.c +++ b/examples/qos_meter/main.c @@ -463,5 +463,8 @@ main(int argc, char **argv) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/qos_sched/main.c b/examples/qos_sched/main.c index c0ed16b68f..4dc65e10c2 100644 --- a/examples/qos_sched/main.c +++ b/examples/qos_sched/main.c @@ -218,5 +218,8 @@ main(int argc, char **argv) } } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/rxtx_callbacks/main.c b/examples/rxtx_callbacks/main.c index 07e95e8d1a..35648226fe 100644 --- a/examples/rxtx_callbacks/main.c +++ b/examples/rxtx_callbacks/main.c @@ -304,5 +304,9 @@ main(int argc, char *argv[]) /* call lcore_main on master core only */ lcore_main(); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/server_node_efd/node/node.c b/examples/server_node_efd/node/node.c index 67a55808bf..e68606e0ca 100644 --- a/examples/server_node_efd/node/node.c +++ b/examples/server_node_efd/node/node.c @@ -383,4 +383,7 @@ main(int argc, char *argv[]) need_flush = 1; } + + /* clean up the EAL */ + rte_eal_cleanup(); } diff --git a/examples/server_node_efd/server/main.c b/examples/server_node_efd/server/main.c index 21c72acda2..c42b6530c0 100644 --- a/examples/server_node_efd/server/main.c +++ b/examples/server_node_efd/server/main.c @@ -334,5 +334,9 @@ main(int argc, char *argv[]) rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MASTER); do_packet_forwarding(); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/service_cores/main.c b/examples/service_cores/main.c index c7c792810d..c5753cc52d 100644 --- a/examples/service_cores/main.c +++ b/examples/service_cores/main.c @@ -220,5 +220,8 @@ main(int argc, char **argv) i = 0; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/skeleton/basicfwd.c b/examples/skeleton/basicfwd.c index 73d313b84e..6f6b59e6f7 100644 --- a/examples/skeleton/basicfwd.c +++ b/examples/skeleton/basicfwd.c @@ -205,5 +205,8 @@ main(int argc, char *argv[]) /* Call lcore_main on the master core only. */ lcore_main(); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/timer/main.c b/examples/timer/main.c index 968a941367..9f1730f932 100644 --- a/examples/timer/main.c +++ b/examples/timer/main.c @@ -117,5 +117,8 @@ main(int argc, char **argv) /* call it on master lcore too */ (void) lcore_mainloop(NULL); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/vdpa/main.c b/examples/vdpa/main.c index d2e2cb7cd4..c3be9159fb 100644 --- a/examples/vdpa/main.c +++ b/examples/vdpa/main.c @@ -450,5 +450,8 @@ main(int argc, char *argv[]) vdpa_sample_quit(); } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/vhost/main.c b/examples/vhost/main.c index 312829e8b9..135aafa5b4 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -1571,6 +1571,8 @@ main(int argc, char *argv[]) RTE_LCORE_FOREACH_SLAVE(lcore_id) rte_eal_wait_lcore(lcore_id); - return 0; + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/vhost_blk/vhost_blk.c b/examples/vhost_blk/vhost_blk.c index d0c30a9c6f..57f0adf50f 100644 --- a/examples/vhost_blk/vhost_blk.c +++ b/examples/vhost_blk/vhost_blk.c @@ -1098,5 +1098,8 @@ int main(int argc, char *argv[]) while (1) sleep(1); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/vhost_crypto/main.c b/examples/vhost_crypto/main.c index 7973b57564..03fb238758 100644 --- a/examples/vhost_crypto/main.c +++ b/examples/vhost_crypto/main.c @@ -455,6 +455,9 @@ free_resource(void) } memset(&options, 0, sizeof(options)); + + /* clean up the EAL */ + rte_eal_cleanup(); } int diff --git a/examples/vm_power_manager/guest_cli/main.c b/examples/vm_power_manager/guest_cli/main.c index 4e17f7fb90..b8fa65ef15 100644 --- a/examples/vm_power_manager/guest_cli/main.c +++ b/examples/vm_power_manager/guest_cli/main.c @@ -200,5 +200,8 @@ main(int argc, char **argv) } run_cli(NULL); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c index 2316aace5a..2f82b878fe 100644 --- a/examples/vm_power_manager/main.c +++ b/examples/vm_power_manager/main.c @@ -469,5 +469,8 @@ main(int argc, char **argv) free(ci->cd); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index b082bc8c1c..29e1214a56 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -662,5 +662,8 @@ main(int argc, char *argv[]) return -1; } + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } diff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c index 594c4f1959..5ad94cfd31 100644 --- a/examples/vmdq_dcb/main.c +++ b/examples/vmdq_dcb/main.c @@ -710,5 +710,8 @@ main(int argc, char *argv[]) /* call on master too */ (void) lcore_main((void*)i); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; } -- 2.31.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-05-17 17:40:34.462188614 +0200 +++ 0129-examples-add-eal-cleanup-to-examples.patch 2021-05-17 17:40:29.387811178 +0200 @@ -1 +1 @@ -From 10aa375704c148d9e90b5e984066d719f7465357 Mon Sep 17 00:00:00 2001 +From 036cff489ea2c5b77de407d837090a708fd89307 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 10aa375704c148d9e90b5e984066d719f7465357 ] + @@ -22 +23,0 @@ -Cc: stable@dpdk.org @@ -33 +34 @@ - examples/flow_filtering/main.c | 7 ++++++- + examples/flow_filtering/main.c | 3 +++ @@ -36,0 +38 @@ + examples/ip_pipeline/main.c | 3 +++ @@ -38 +40 @@ - examples/ipsec-secgw/ipsec-secgw.c | 3 +++ + examples/ipsec-secgw/ipsec-secgw.c | 2 ++ @@ -48 +49,0 @@ - examples/l3fwd-graph/main.c | 3 +++ @@ -59 +59,0 @@ - examples/pipeline/main.c | 3 +++ @@ -77 +77 @@ - 51 files changed, 166 insertions(+), 2 deletions(-) + 50 files changed, 159 insertions(+), 1 deletion(-) @@ -80 +80 @@ -index 20cfd327fb..5251db0b16 100644 +index db2dc33345..a5e69d5852 100644 @@ -83 +83 @@ -@@ -1195,5 +1195,8 @@ main(int argc, char **argv) +@@ -1171,5 +1171,8 @@ main(int argc, char **argv) @@ -93 +93 @@ -index 81a6fa976b..f48400e211 100644 +index ee8fa2d271..d4de4b9e68 100644 @@ -96 +96 @@ -@@ -876,5 +876,9 @@ main(int argc, char *argv[]) +@@ -879,5 +879,9 @@ main(int argc, char *argv[]) @@ -107 +107 @@ -index bb79542452..94002f0582 100644 +index f2f2e5a2f4..dd3bfab9d1 100644 @@ -110 +110 @@ -@@ -36,5 +36,8 @@ int main(int argc, char **argv) +@@ -37,5 +37,8 @@ int main(int argc, char **argv) @@ -120 +120 @@ -index caa7c46cb1..1b1029660e 100644 +index 567c5e9891..3f606a80a0 100644 @@ -123 +123 @@ -@@ -932,5 +932,8 @@ main(int argc, char *argv[]) +@@ -935,5 +935,8 @@ main(int argc, char *argv[]) @@ -133 +133 @@ -index c6023a1d41..21ed85c7d6 100644 +index 29891012ac..608327170f 100644 @@ -136 +136 @@ -@@ -299,5 +299,8 @@ int main(int argc, char **argv) +@@ -298,5 +298,8 @@ int main(int argc, char **argv) @@ -146 +146 @@ -index b73691dd23..c175fe6ac2 100644 +index eadfdb4bac..2f8238886b 100644 @@ -149 +149 @@ -@@ -501,6 +501,9 @@ exit: +@@ -433,6 +433,9 @@ exit: @@ -160 +160 @@ -index 335d7d2ad8..5c3e111cfa 100644 +index 1c12bbb2fd..060f0c9402 100644 @@ -164 +164 @@ - /* Call lcore_main on the main core only. */ + /* Call lcore_main on the master core only. */ @@ -173 +173 @@ -index bc28468f17..f1940bc88d 100644 +index cc9e7e7808..6188f9c6bb 100644 @@ -176,3 +176,3 @@ -@@ -258,5 +258,10 @@ main(int argc, char **argv) - rte_exit(EXIT_FAILURE, "error in creating flow"); - } +@@ -256,5 +256,8 @@ main(int argc, char **argv) + + main_loop(); @@ -180,3 +179,0 @@ -- return main_loop(); -+ ret = main_loop(); -+ @@ -186 +183 @@ -+ return ret; + return 0; @@ -189 +186 @@ -index 8a4cee60ff..ac72145c73 100644 +index c922cfbad7..d2f262b86b 100644 @@ -203 +200 @@ -index 6502e4531f..845301a6db 100644 +index 7971442b5d..087bdcf66a 100644 @@ -206 +203 @@ -@@ -1011,6 +1011,9 @@ main(int argc, char **argv) +@@ -1013,6 +1013,9 @@ main(int argc, char **argv) @@ -217 +214 @@ -index 5a96841dfc..77a6a18d19 100644 +index 90e4d1ea4a..435b6eca61 100644 @@ -220 +217 @@ -@@ -1075,5 +1075,8 @@ main(int argc, char **argv) +@@ -1078,5 +1078,8 @@ main(int argc, char **argv) @@ -228,0 +226,12 @@ +diff --git a/examples/ip_pipeline/main.c b/examples/ip_pipeline/main.c +index 97d1e91c2b..95051fca49 100644 +--- a/examples/ip_pipeline/main.c ++++ b/examples/ip_pipeline/main.c +@@ -266,4 +266,7 @@ main(int argc, char **argv) + + kni_handle_request(); + } ++ ++ /* clean up the EAL */ ++ rte_eal_cleanup(); + } @@ -230 +239 @@ -index 954a11512a..ce8882a458 100644 +index 29b34d0710..89ff1a06b6 100644 @@ -233 +242 @@ -@@ -1201,5 +1201,8 @@ main(int argc, char **argv) +@@ -1207,5 +1207,8 @@ main(int argc, char **argv) @@ -243 +252 @@ -index 59971dc766..a9f9b5859b 100644 +index 1493be9025..8e9b45493a 100644 @@ -246,3 +255,2 @@ -@@ -3076,6 +3076,9 @@ main(int32_t argc, char **argv) - rte_eth_dev_close(portid); - printf(" Done\n"); +@@ -2543,5 +2543,7 @@ main(int32_t argc, char **argv) + return -1; @@ -250 +258 @@ -+ + @@ -253,2 +260,0 @@ - printf("Bye...\n"); - @@ -255,0 +262 @@ + } @@ -257 +264 @@ -index e18726a5d2..fd6207a18b 100644 +index 09d9270aff..83bdeb7403 100644 @@ -260 +267 @@ -@@ -805,5 +805,8 @@ main(int argc, char **argv) +@@ -811,5 +811,8 @@ main(int argc, char **argv) @@ -270 +277 @@ -index fe93b8618a..beabb3c848 100644 +index 7edc73ab91..a696a83578 100644 @@ -273 +280 @@ -@@ -1140,5 +1140,8 @@ main(int argc, char** argv) +@@ -1120,5 +1120,8 @@ main(int argc, char** argv) @@ -283 +290 @@ -index 2e632c5cb6..02288a3824 100644 +index 6838f288c6..87d6c930b6 100644 @@ -287 +294 @@ - /* Call lcore_main on the main core only. */ + /* Call lcore_main on the master core only. */ @@ -296 +303 @@ -index a957df05db..4f51616492 100644 +index b09d017e46..063db823bd 100644 @@ -299 +306 @@ -@@ -2835,5 +2835,8 @@ main(int argc, char **argv) +@@ -2828,5 +2828,8 @@ main(int argc, char **argv) @@ -309 +316 @@ -index 444ee4e4db..0acfee4c92 100644 +index 7969a1c313..5bfdcf42ef 100644 @@ -312 +319 @@ -@@ -716,6 +716,9 @@ main(int argc, char **argv) +@@ -583,6 +583,9 @@ main(int argc, char **argv) @@ -323 +330 @@ -index 1151769aa9..58a722669b 100644 +index c2180c2d1c..b50ba604eb 100644 @@ -326 +333 @@ -@@ -1022,5 +1022,8 @@ main(int argc, char **argv) +@@ -1028,5 +1028,8 @@ main(int argc, char **argv) @@ -336 +343 @@ -index e4c2b27933..be6616288f 100644 +index ba2745c915..935987bf8f 100644 @@ -339 +346 @@ -@@ -817,5 +817,9 @@ main(int argc, char **argv) +@@ -823,5 +823,9 @@ main(int argc, char **argv) @@ -350 +357 @@ -index be5bf7bc90..32d405e65a 100644 +index e3767a3159..1d850fcfc1 100644 @@ -353 +360 @@ -@@ -902,6 +902,9 @@ main(int argc, char **argv) +@@ -772,6 +772,9 @@ main(int argc, char **argv) @@ -364 +371 @@ -index 4a17274379..a1f457b564 100644 +index cfbeee962b..430d42d103 100644 @@ -367 +374 @@ -@@ -2258,5 +2258,8 @@ main(int argc, char **argv) +@@ -2116,5 +2116,8 @@ main(int argc, char **argv) @@ -376,14 +382,0 @@ -diff --git a/examples/l3fwd-graph/main.c b/examples/l3fwd-graph/main.c -index 127c5e8dab..75c2e0ef3f 100644 ---- a/examples/l3fwd-graph/main.c -+++ b/examples/l3fwd-graph/main.c -@@ -1123,6 +1123,9 @@ main(int argc, char **argv) - rte_eth_dev_close(portid); - printf(" Done\n"); - } -+ -+ /* clean up the EAL */ -+ rte_eal_cleanup(); - printf("Bye...\n"); - - return ret; @@ -391 +384 @@ -index 74413052b0..4cb800aa15 100644 +index b98040df45..19722f0c4c 100644 @@ -394,3 +387,3 @@ -@@ -1405,6 +1405,10 @@ main(int argc, char **argv) - printf(" Done\n"); - } +@@ -1093,6 +1093,10 @@ main(int argc, char **argv) + rte_eth_dev_close(portid); + printf(" Done\n"); @@ -406 +399 @@ -index 8ca3586e05..d8ff5f133b 100644 +index 6b8c153b58..26595bb47a 100644 @@ -409 +402 @@ -@@ -730,5 +730,8 @@ main(int argc, char **argv) +@@ -741,5 +741,8 @@ main(int argc, char **argv) @@ -431 +424 @@ -index b18e12dd4b..9bcee460fd 100644 +index 1084b303ff..b349d90d92 100644 @@ -435 +428 @@ - rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MAIN); + rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MASTER); @@ -445 +438 @@ -index 109b8bb45d..a05404f7ed 100644 +index e6c69d6a33..0304c453ec 100644 @@ -459 +452 @@ -index ae7f5e0d50..79e5c61e40 100644 +index c5cd8825e5..a5ff1fee6e 100644 @@ -462 +455 @@ -@@ -472,5 +472,8 @@ main(int argc, char **argv) +@@ -475,5 +475,8 @@ main(int argc, char **argv) @@ -464 +457 @@ - rte_eal_mp_remote_launch(lcore_main, NULL, CALL_MAIN); + rte_eal_mp_remote_launch(lcore_main, NULL, CALL_MASTER); @@ -472 +465 @@ -index 54b7f08964..e9a3887106 100644 +index 17eedcf0b8..4630ece311 100644 @@ -475 +468 @@ -@@ -1498,5 +1498,8 @@ main(int argc, char **argv) +@@ -1496,5 +1496,8 @@ main(int argc, char **argv) @@ -485 +478 @@ -index bcbda05f5e..d2fe9f6b50 100644 +index 4eea8a3318..c9f645e67e 100644 @@ -488 +481 @@ -@@ -783,5 +783,9 @@ main(int argc, char **argv) +@@ -779,5 +779,9 @@ main(int argc, char **argv) @@ -499 +492 @@ -index b16c19bc96..2f593abf26 100644 +index 96fbdcdde2..aee075f2d2 100644 @@ -502 +495 @@ -@@ -3781,5 +3781,8 @@ main(int argc, char **argv) +@@ -3783,5 +3783,8 @@ main(int argc, char **argv) @@ -512 +505 @@ -index 4ce3622e47..257de50692 100644 +index 03ff394369..d137c49bb3 100644 @@ -515,2 +508,2 @@ -@@ -263,5 +263,9 @@ int main(int argc, char **argv) - RTE_LCORE_FOREACH_WORKER(lcore_id) { +@@ -258,5 +258,9 @@ int main(int argc, char **argv) + RTE_LCORE_FOREACH_SLAVE(lcore_id) { @@ -525,12 +517,0 @@ -diff --git a/examples/pipeline/main.c b/examples/pipeline/main.c -index fb57ef31fe..8ea19f9dd5 100644 ---- a/examples/pipeline/main.c -+++ b/examples/pipeline/main.c -@@ -190,4 +190,7 @@ main(int argc, char **argv) - - conn_poll_for_msg(conn); - } -+ -+ /* clean up the EAL */ -+ rte_eal_cleanup(); - } @@ -538 +519 @@ -index 878d1a0b99..173451eedc 100644 +index c5b0c79ed4..e13a491c27 100644 @@ -542 +523 @@ - /* Call lcore_main on the main core only. */ + /* Call lcore_main on the master core only. */ @@ -551 +532 @@ -index f2d9c28828..6e724f3783 100644 +index e8112c83a2..03129c85f4 100644 @@ -554 +535 @@ -@@ -460,5 +460,8 @@ main(int argc, char **argv) +@@ -463,5 +463,8 @@ main(int argc, char **argv) @@ -564 +545 @@ -index a6071b991c..dc6a17a646 100644 +index c0ed16b68f..4dc65e10c2 100644 @@ -577 +558 @@ -index 35c6c39807..b57b2fc6bc 100644 +index 07e95e8d1a..35648226fe 100644 @@ -580 +561 @@ -@@ -338,5 +338,9 @@ main(int argc, char *argv[]) +@@ -304,5 +304,9 @@ main(int argc, char *argv[]) @@ -582 +563 @@ - /* call lcore_main on main core only */ + /* call lcore_main on master core only */ @@ -603 +584 @@ -index 4728960eaf..39b7b6370f 100644 +index 21c72acda2..c42b6530c0 100644 @@ -607 +588 @@ - rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MAIN); + rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MASTER); @@ -617 +598 @@ -index 0b3d8c8073..2b57a52b16 100644 +index c7c792810d..c5753cc52d 100644 @@ -630 +611 @@ -index 4b2b6ab4ff..a31b2882ae 100644 +index 73d313b84e..6f6b59e6f7 100644 @@ -634 +615 @@ - /* Call lcore_main on the main core only. */ + /* Call lcore_main on the master core only. */ @@ -643 +624 @@ -index 5a57e48290..d67301e3c4 100644 +index 968a941367..9f1730f932 100644 @@ -647 +628 @@ - /* call it on main lcore too */ + /* call it on master lcore too */ @@ -656 +637 @@ -index 97e967b9a2..097a267b8c 100644 +index d2e2cb7cd4..c3be9159fb 100644 @@ -659 +640 @@ -@@ -576,5 +576,8 @@ main(int argc, char *argv[]) +@@ -450,5 +450,8 @@ main(int argc, char *argv[]) @@ -669 +650 @@ -index 2ca7d98c58..ff48ba270d 100644 +index 312829e8b9..135aafa5b4 100644 @@ -672,2 +653,2 @@ -@@ -1781,6 +1781,8 @@ main(int argc, char *argv[]) - RTE_LCORE_FOREACH_WORKER(lcore_id) +@@ -1571,6 +1571,8 @@ main(int argc, char *argv[]) + RTE_LCORE_FOREACH_SLAVE(lcore_id) @@ -683 +664 @@ -index 54f81b334d..fe2b4e4803 100644 +index d0c30a9c6f..57f0adf50f 100644 @@ -686 +667 @@ -@@ -907,5 +907,8 @@ int main(int argc, char *argv[]) +@@ -1098,5 +1098,8 @@ int main(int argc, char *argv[]) @@ -696 +677 @@ -index 7ed38fedf2..dea7dcbd07 100644 +index 7973b57564..03fb238758 100644 @@ -699 +680 @@ -@@ -469,6 +469,9 @@ free_resource(void) +@@ -455,6 +455,9 @@ free_resource(void) @@ -723 +704 @@ -index 799d7b9bc3..7d5bf68554 100644 +index 2316aace5a..2f82b878fe 100644 @@ -726 +707 @@ -@@ -468,5 +468,8 @@ main(int argc, char **argv) +@@ -469,5 +469,8 @@ main(int argc, char **argv) @@ -736 +717 @@ -index 3cb890fa2b..a19f7db739 100644 +index b082bc8c1c..29e1214a56 100644 @@ -739 +720 @@ -@@ -659,5 +659,8 @@ main(int argc, char *argv[]) +@@ -662,5 +662,8 @@ main(int argc, char *argv[]) @@ -749 +730 @@ -index 1a74364638..ba992802e9 100644 +index 594c4f1959..5ad94cfd31 100644 @@ -752,2 +733,2 @@ -@@ -707,5 +707,8 @@ main(int argc, char *argv[]) - /* call on main too */ +@@ -710,5 +710,8 @@ main(int argc, char *argv[]) + /* call on master too */