From patchwork Tue Apr 24 14:46:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Olivier Matz X-Patchwork-Id: 38823 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 825985911; Tue, 24 Apr 2018 16:47:46 +0200 (CEST) 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) Received: from glumotte.dev.6wind.com. (unknown [10.16.0.195]) by proxy.6wind.com (Postfix) with ESMTP id 92BED168A54; Tue, 24 Apr 2018 16:45:08 +0200 (CEST) From: Olivier Matz To: dev@dpdk.org Cc: Anatoly Burakov Date: Tue, 24 Apr 2018 16:46:51 +0200 Message-Id: <20180424144651.13145-6-olivier.matz@6wind.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180424144651.13145-1-olivier.matz@6wind.com> References: <20180403130439.11151-1-olivier.matz@6wind.com> <20180424144651.13145-1-olivier.matz@6wind.com> Subject: [dpdk-dev] [PATCH v3 5/5] examples: use new API to create control threads X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list 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. */