From: Olivier Matz Date: Tue, 24 Apr 2018 14:46:51 +0000 (+0200) Subject: examples: use new API to create control threads X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=fa20485454178fd3a8912753a6a2ed6619dc64fb;p=dpdk.git examples: use new API to create control threads 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 --- diff --git a/examples/tep_termination/main.c b/examples/tep_termination/main.c index 52b95025cf..7795d08944 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 e33a0f3c97..1659ef315a 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. */