From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olivier Matz Subject: [PATCH v3 5/5] examples: use new API to create control threads Date: Tue, 24 Apr 2018 16:46:51 +0200 Message-ID: <20180424144651.13145-6-olivier.matz@6wind.com> References: <20180403130439.11151-1-olivier.matz@6wind.com> <20180424144651.13145-1-olivier.matz@6wind.com> Cc: Anatoly Burakov To: dev@dpdk.org Return-path: Received: from proxy.6wind.com (host.76.145.23.62.rev.coltfrance.com [62.23.145.76]) by dpdk.org (Postfix) with ESMTP id E560A4C6F for ; Tue, 24 Apr 2018 16:47:13 +0200 (CEST) In-Reply-To: <20180424144651.13145-1-olivier.matz@6wind.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" A new API was introduced to create control thread: rte_ctrl_thread_create(). Use it in examples when relevant. While at it, change the prototype of the thread start functions: it's not a good idea to cast it in (void *) since the compiler won't check that the prototype is compatible. Signed-off-by: Olivier Matz --- examples/tep_termination/main.c | 16 +++++++--------- examples/vhost/main.c | 19 +++++++------------ 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/examples/tep_termination/main.c b/examples/tep_termination/main.c index 52b95025c..7795d0894 100644 --- a/examples/tep_termination/main.c +++ b/examples/tep_termination/main.c @@ -1061,8 +1061,8 @@ static const struct vhost_device_ops virtio_net_device_ops = { * This is a thread will wake up after a period to print stats if the user has * enabled them. */ -static void -print_stats(void) +static void * +print_stats(__rte_unused void *arg) { struct virtio_net_data_ll *dev_ll; uint64_t tx_dropped, rx_dropped; @@ -1119,6 +1119,8 @@ print_stats(void) } printf("\n================================================\n"); } + + return NULL; } /** @@ -1134,7 +1136,6 @@ main(int argc, char *argv[]) uint16_t portid; uint16_t queue_id; static pthread_t tid; - char thread_name[RTE_MAX_THREAD_NAME_LEN]; /* init EAL */ ret = rte_eal_init(argc, argv); @@ -1205,13 +1206,10 @@ main(int argc, char *argv[]) /* Enable stats if the user option is set. */ if (enable_stats) { - ret = pthread_create(&tid, NULL, (void *)print_stats, NULL); - if (ret != 0) + ret = rte_ctrl_thread_create(&tid, "print-stats", NULL, + print_stats, NULL); + if (ret < 0) rte_exit(EXIT_FAILURE, "Cannot create print-stats thread\n"); - snprintf(thread_name, sizeof(thread_name), "print-stats"); - ret = rte_thread_setname(tid, thread_name); - if (ret != 0) - RTE_LOG(DEBUG, VHOST_CONFIG, "Cannot set print-stats name\n"); } /* Launch all data cores. */ diff --git a/examples/vhost/main.c b/examples/vhost/main.c index e33a0f3c9..1659ef315 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -1292,8 +1292,8 @@ static const struct vhost_device_ops virtio_net_device_ops = * This is a thread will wake up after a period to print stats if the user has * enabled them. */ -static void -print_stats(void) +static void * +print_stats(__rte_unused void *arg) { struct vhost_dev *vdev; uint64_t tx_dropped, rx_dropped; @@ -1332,6 +1332,8 @@ print_stats(void) printf("===================================================\n"); } + + return NULL; } static void @@ -1420,7 +1422,6 @@ main(int argc, char *argv[]) int ret, i; uint16_t portid; static pthread_t tid; - char thread_name[RTE_MAX_THREAD_NAME_LEN]; uint64_t flags = 0; signal(SIGINT, sigint_handler); @@ -1493,17 +1494,11 @@ main(int argc, char *argv[]) /* Enable stats if the user option is set. */ if (enable_stats) { - ret = pthread_create(&tid, NULL, (void *)print_stats, NULL); - if (ret != 0) + ret = rte_ctrl_thread_create(&tid, "print-stats", NULL, + print_stats, NULL); + if (ret < 0) rte_exit(EXIT_FAILURE, "Cannot create print-stats thread\n"); - - /* Set thread_name for aid in debugging. */ - snprintf(thread_name, sizeof(thread_name), "print-stats"); - ret = rte_thread_setname(tid, thread_name); - if (ret != 0) - RTE_LOG(DEBUG, VHOST_CONFIG, - "Cannot set print-stats name\n"); } /* Launch all data cores. */ -- 2.11.0