Commit 15696952 authored by Krishna Kanth Reddy's avatar Krishna Kanth Reddy Committed by Tomasz Zawadzki
Browse files

lib/trace : Display names for user created threads



Names for the user created threads are displayed in the
trace logs.

Change-Id: I0030df05276ab8c3583d10effdfb54bed6d3c28a
Signed-off-by: default avatarKrishna Kanth Reddy <krish.reddy@samsung.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21713


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent 84532e3d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -135,6 +135,7 @@ print_event(struct spdk_trace_parser_entry *entry, uint64_t tsc_rate, uint64_t t
	d = &g_flags->tpoint[e->tpoint_id];
	us = get_us_from_tsc(e->tsc - tsc_offset, tsc_rate);

	printf("%-*s ", (int)sizeof(g_flags->tname[entry->lcore]), g_flags->tname[entry->lcore]);
	printf("%2d: %10.3f ", entry->lcore, us);
	if (g_print_tsc) {
		printf("(%9ju) ", e->tsc - tsc_offset);
+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ struct spdk_trace_object {
	char	id_prefix;
};

#define	SPDK_TRACE_THREAD_NAME_LEN 16
#define SPDK_TRACE_MAX_GROUP_ID  16
#define SPDK_TRACE_MAX_TPOINT_ID (SPDK_TRACE_MAX_GROUP_ID * 64)
#define SPDK_TPOINT_ID(group, tpoint)	((group * 64) + tpoint)
@@ -117,6 +118,7 @@ struct spdk_trace_history {
struct spdk_trace_flags {
	uint64_t			tsc_rate;
	uint64_t			tpoint_mask[SPDK_TRACE_MAX_GROUP_ID];
	char				tname[SPDK_TRACE_MAX_LCORE][SPDK_TRACE_THREAD_NAME_LEN];
	struct spdk_trace_owner		owner[UCHAR_MAX + 1];
	struct spdk_trace_object	object[UCHAR_MAX + 1];
	struct spdk_trace_tpoint	tpoint[SPDK_TRACE_MAX_TPOINT_ID];
+19 −2
Original line number Diff line number Diff line
@@ -155,6 +155,10 @@ _spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t poller_id, uint32_
int
spdk_trace_register_user_thread(void)
{
	int ret;
	uint32_t ut_index;
	pthread_t tid;

	if (!g_ut_array) {
		SPDK_ERRLOG("user thread array not created\n");
		return -ENOMEM;
@@ -175,8 +179,21 @@ spdk_trace_register_user_thread(void)
		return -ENOENT;
	}

	t_ut_lcore_history = spdk_get_per_lcore_history(g_trace_histories,
			     t_ut_array_index + g_user_thread_index_start);
	ut_index = t_ut_array_index + g_user_thread_index_start;

	t_ut_lcore_history = spdk_get_per_lcore_history(g_trace_histories, ut_index);

	assert(t_ut_lcore_history != NULL);

	memset(g_trace_flags->tname[ut_index], 0, SPDK_TRACE_THREAD_NAME_LEN);

	tid = pthread_self();
	ret = pthread_getname_np(tid, g_trace_flags->tname[ut_index], SPDK_TRACE_THREAD_NAME_LEN);
	if (ret) {
		SPDK_ERRLOG("cannot get thread name\n");
		pthread_mutex_unlock(&g_ut_array_mutex);
		return ret;
	}

	spdk_bit_array_set(g_ut_array, t_ut_array_index);