X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlib%2Fthreads_cli.c;h=a47d86401bc1d4bb1f25b3e4483cc07eefb3fb83;hb=5d64c786;hp=02bdea5cb0f6f40b7728ca2fe0aa6f7d6d7482f6;hpb=01914ce45729833cec88c65689de9a0336cd40cc;p=vpp.git diff --git a/src/vlib/threads_cli.c b/src/vlib/threads_cli.c index 02bdea5cb0f..a47d86401bc 100644 --- a/src/vlib/threads_cli.c +++ b/src/vlib/threads_cli.c @@ -15,7 +15,6 @@ #define _GNU_SOURCE #include -#include #include #include @@ -64,57 +63,16 @@ show_threads_fn (vlib_main_t * vm, line = format (line, "%-25U", format_sched_policy_and_priority, w->lwp); - int lcore = -1; - cpu_set_t cpuset; - CPU_ZERO (&cpuset); - int ret = -1; - - ret = - pthread_getaffinity_np (w->thread_id, sizeof (cpu_set_t), &cpuset); - if (!ret) + int cpu_id = w->cpu_id; + if (cpu_id > -1) { - int c; - for (c = 0; c < CPU_SETSIZE; c++) - if (CPU_ISSET (c, &cpuset)) - { - if (lcore > -1) - { - lcore = -2; - break; - } - lcore = c; - } + int core_id = w->core_id; + int socket_id = w->socket_id; + line = format (line, "%-7u%-7u%-7u%", cpu_id, core_id, socket_id); } else { - lcore = w->lcore_id; - } - - if (lcore > -1) - { - const char *sys_cpu_path = "/sys/devices/system/cpu/cpu"; - int socket_id = -1; - int core_id = -1; - u8 *p = 0; - - p = format (p, "%s%u/topology/core_id%c", sys_cpu_path, lcore, 0); - clib_sysfs_read ((char *) p, "%d", &core_id); - - vec_reset_length (p); - p = - format (p, - "%s%u/topology/physical_package_id%c", - sys_cpu_path, lcore, 0); - clib_sysfs_read ((char *) p, "%d", &socket_id); - vec_free (p); - - line = format (line, "%-7u%-7u%-7u%", lcore, core_id, socket_id); - } - else - { - line = - format (line, "%-7s%-7s%-7s%", (lcore == -2) ? "M" : "n/a", "n/a", - "n/a"); + line = format (line, "%-7s%-7s%-7s%", "n/a", "n/a", "n/a"); } vlib_cli_output (vm, "%v", line); @@ -574,6 +532,28 @@ VLIB_CLI_COMMAND (cmd_test_frame_queue_threshold,static) = { }; /* *INDENT-ON* */ +static clib_error_t * +test_threads_barrier_elog_command_fn (vlib_main_t * vm, + unformat_input_t * input, + vlib_cli_command_t * cmd) +{ + if (unformat (input, "enable")) + vlib_worker_threads->barrier_elog_enabled = 1; + else if (unformat (input, "disable")) + vlib_worker_threads->barrier_elog_enabled = 0; + else + return clib_error_return (0, "please choose enable or disable"); + return 0; +} + +/* *INDENT-OFF* */ +VLIB_CLI_COMMAND (test_elog_vector_length_trigger, static) = +{ + .path = "test threads barrier-elog", + .short_help = "test threads barrier-elog", + .function = test_threads_barrier_elog_command_fn, +}; +/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON