X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Ftelemetry%2Ftelemetry.c;h=f8b0d1157ba1514a2a9f7c6e8863e4453a469b32;hb=2913bc4155d209f7d2d11b0d46f46d6ab8ad47e9;hp=0b2993396a9ac30569f03a273df92ae5cdbea855;hpb=c53a5f3efbef2d3975c6733e1ed21f42bc37cb83;p=dpdk.git diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c index 0b2993396a..f8b0d1157b 100644 --- a/lib/telemetry/telemetry.c +++ b/lib/telemetry/telemetry.c @@ -27,6 +27,9 @@ #define MAX_OUTPUT_LEN (1024 * 16) #define MAX_CONNECTIONS 10 +/** Maximum number of telemetry callbacks. */ +#define TELEMETRY_MAX_CALLBACKS 64 + #ifndef RTE_EXEC_ENV_WINDOWS static void * client_handler(void *socket); @@ -104,8 +107,10 @@ list_commands(const char *cmd __rte_unused, const char *params __rte_unused, int i; rte_tel_data_start_array(d, RTE_TEL_STRING_VAL); + rte_spinlock_lock(&callback_sl); for (i = 0; i < num_callbacks; i++) rte_tel_data_add_array_string(d, callbacks[i].cmd); + rte_spinlock_unlock(&callback_sl); return 0; } @@ -432,6 +437,18 @@ error: return -1; } +static void +set_thread_name(pthread_t id __rte_unused, const char *name __rte_unused) +{ +#if defined RTE_EXEC_ENV_LINUX && defined __GLIBC__ && defined __GLIBC_PREREQ +#if __GLIBC_PREREQ(2, 12) + pthread_setname_np(id, name); +#endif +#elif defined RTE_EXEC_ENV_FREEBSD + pthread_set_name_np(id, name); +#endif +} + static int telemetry_legacy_init(void) { @@ -463,7 +480,7 @@ telemetry_legacy_init(void) return -1; } pthread_setaffinity_np(t_old, sizeof(*thread_cpuset), thread_cpuset); - pthread_setname_np(t_old, "telemetry-v1"); + set_thread_name(t_old, "telemetry-v1"); TMTY_LOG(DEBUG, "Legacy telemetry socket initialized ok\n"); return 0; } @@ -502,7 +519,7 @@ telemetry_v2_init(void) return -1; } pthread_setaffinity_np(t_new, sizeof(*thread_cpuset), thread_cpuset); - pthread_setname_np(t_new, "telemetry-v2"); + set_thread_name(t_new, "telemetry-v2"); atexit(unlink_sockets); return 0;