Commit a6e5d032 authored by Jim Harris's avatar Jim Harris
Browse files

trace: rename trace_event's poller_id to owner_id



"poller_id" was sort of a very early and crude attempt at associating
trace events with who generated them. The new "owner" concept is replacing
that, so just rename the existing "poller_id" to "owner_id".

Signed-off-by: default avatarJim Harris <jim.harris@samsung.com>
Change-Id: Icd61e39c5225030690ef0238cd0b3a90846fcc6b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22647


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent ae89daab
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -146,7 +146,7 @@ print_event(struct spdk_trace_parser_entry *entry, uint64_t tsc_rate, uint64_t t
		printf("(%9ju) ", e->tsc - tsc_offset);
	}
	if (g_file->owner_type[d->owner_type].id_prefix) {
		printf("%c%02d ", g_file->owner_type[d->owner_type].id_prefix, e->poller_id);
		printf("%c%02d ", g_file->owner_type[d->owner_type].id_prefix, e->owner_id);
	} else {
		printf("%4s", " ");
	}
@@ -207,7 +207,7 @@ print_event_json(struct spdk_trace_parser_entry *entry, uint64_t tsc_rate, uint6
	if (g_file->owner_type[d->owner_type].id_prefix) {
		spdk_json_write_named_string_fmt(g_json, "poller", "%c%02d",
						 g_file->owner_type[d->owner_type].id_prefix,
						 e->poller_id);
						 e->owner_id);
	}
	if (e->size != 0) {
		spdk_json_write_named_uint32(g_json, "size", e->size);
+10 −10
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ extern "C" {
struct spdk_trace_entry {
	uint64_t	tsc;
	uint16_t	tpoint_id;
	uint16_t	poller_id;
	uint16_t	owner_id;
	uint32_t	size;
	uint64_t	object_id;
	uint8_t		args[8];
@@ -191,20 +191,20 @@ spdk_get_trace_owner(const struct spdk_trace_file *trace_file, uint16_t owner_id
	       (((char *)trace_file) + trace_file->owner_offset + owner_id * owner_size);
}

void _spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t poller_id,
void _spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t owner_id,
			uint32_t size, uint64_t object_id, int num_args, ...);

#define spdk_trace_tpoint_enabled(tpoint_id)	\
	spdk_unlikely((g_trace_file != NULL  && \
	((1ULL << (tpoint_id & 0x3F)) &	g_trace_file->tpoint_mask[tpoint_id >> 6])))

#define _spdk_trace_record_tsc(tsc, tpoint_id, poller_id, size, object_id, num_args, ...)	\
#define _spdk_trace_record_tsc(tsc, tpoint_id, owner_id, size, object_id, num_args, ...)	\
	do {											\
		assert(tpoint_id < SPDK_TRACE_MAX_TPOINT_ID);					\
		if (!spdk_trace_tpoint_enabled(tpoint_id)) {					\
			break;									\
		}										\
		_spdk_trace_record(tsc, tpoint_id, poller_id, size, object_id,			\
		_spdk_trace_record(tsc, tpoint_id, owner_id, size, object_id,			\
				   num_args, ## __VA_ARGS__);					\
	} while (0)

@@ -220,14 +220,14 @@ void _spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t poller_id,
 *
 * \param tsc Current tsc.
 * \param tpoint_id Tracepoint id to record.
 * \param poller_id Poller id to record.
 * \param owner_id Owner id to record.
 * \param size Size to record.
 * \param object_id Object id to record.
 * \param ... Extra tracepoint arguments. The number, types, and order of the arguments
 *	      must match the definition of the tracepoint.
 */
#define spdk_trace_record_tsc(tsc, tpoint_id, poller_id, size, object_id, ...)	\
	_spdk_trace_record_tsc(tsc, tpoint_id, poller_id, size, object_id,	\
#define spdk_trace_record_tsc(tsc, tpoint_id, owner_id, size, object_id, ...)	\
	_spdk_trace_record_tsc(tsc, tpoint_id, owner_id, size, object_id,	\
			       spdk_trace_num_args(__VA_ARGS__), ## __VA_ARGS__)

/**
@@ -237,14 +237,14 @@ void _spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t poller_id,
 * the current tsc to save in the tracepoint.
 *
 * \param tpoint_id Tracepoint id to record.
 * \param poller_id Poller id to record.
 * \param owner_id Owner id to record.
 * \param size Size to record.
 * \param object_id Object id to record.
 * \param ... Extra tracepoint arguments. The number, types, and order of the arguments
 *	      must match the definition of the tracepoint.
 */
#define spdk_trace_record(tpoint_id, poller_id, size, object_id, ...) \
	spdk_trace_record_tsc(0, tpoint_id, poller_id, size, object_id, ## __VA_ARGS__)
#define spdk_trace_record(tpoint_id, owner_id, size, object_id, ...) \
	spdk_trace_record_tsc(0, tpoint_id, owner_id, size, object_id, ## __VA_ARGS__)

/**
 * Get the current tpoint mask of the given tpoint group.
+3 −3
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ get_trace_entry(struct spdk_trace_history *history, uint64_t offset)
}

void
_spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t poller_id, uint32_t size,
_spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t owner_id, uint32_t size,
		   uint64_t object_id, int num_args, ...)
{
	struct spdk_trace_history *lcore_history;
@@ -79,14 +79,14 @@ _spdk_trace_record(uint64_t tsc, uint16_t tpoint_id, uint16_t poller_id, uint32_
	next_entry = get_trace_entry(lcore_history, lcore_history->next_entry);
	next_entry->tsc = tsc;
	next_entry->tpoint_id = tpoint_id;
	next_entry->poller_id = poller_id;
	next_entry->owner_id = owner_id;
	next_entry->size = size;
	next_entry->object_id = object_id;

	num_entries = 1;
	buffer = (struct spdk_trace_entry_buffer *)next_entry;
	/* The initial offset needs to be adjusted by the fields present in the first entry
	 * (poller_id, size, etc.).
	 * (owner_id, size, etc.).
	 */
	offset = offsetof(struct spdk_trace_entry, args) -
		 offsetof(struct spdk_trace_entry_buffer, data);
+7 −7
Original line number Diff line number Diff line
@@ -175,7 +175,7 @@ class TraceEntry:
    lcore: int
    tpoint: Tracepoint
    tsc: int
    poller: str
    owner: str
    size: int
    object_id: str
    object_ptr: int
@@ -242,7 +242,7 @@ class JsonProvider(TraceProvider):
        return TraceEntry(tpoint=tpoint, lcore=entry['lcore'], tsc=entry['tsc'],
                          size=entry.get('size'), object_id=obj.get('id'),
                          object_ptr=obj.get('value'), related=entry.get('related'),
                          time=obj.get('time'), poller=entry.get('poller'),
                          time=obj.get('time'), owner=entry.get('owner'),
                          args={n.name: v for n, v in zip(tpoint.args, entry.get('args', []))})

    def tsc_rate(self):
@@ -313,7 +313,7 @@ class CTraceFile(ct.Structure):
class CTraceEntry(ct.Structure):
    _fields_ = [('tsc', ct.c_uint64),
                ('tpoint_id', ct.c_uint16),
                ('poller_id', ct.c_uint16),
                ('owner_id', ct.c_uint16),
                ('size', ct.c_uint32),
                ('object_id', ct.c_uint64)]

@@ -407,9 +407,9 @@ class NativeProvider(TraceProvider):
                object_id, ts = None, None

            if tpoint.owner_type != OWNER_TYPE_NONE:
                poller_id = '{}{:02}'.format(self._owners[tpoint.owner_type], entry.poller_id)
                owner_id = '{}{:02}'.format(self._owners[tpoint.owner_type], entry.owner_id)
            else:
                poller_id = None
                owner_id = None

            if pe.related_type != OBJECT_NONE:
                related = '{}{}'.format(self._objects[pe.related_type], pe.related_index)
@@ -418,7 +418,7 @@ class NativeProvider(TraceProvider):

            yield TraceEntry(tpoint=tpoint, lcore=lcore, tsc=entry.tsc,
                             size=entry.size, object_id=object_id,
                             object_ptr=entry.object_id, poller=poller_id, time=ts,
                             object_ptr=entry.object_id, owner=owner_id, time=ts,
                             args=args, related=related)


@@ -470,7 +470,7 @@ class Trace:
            related = ' (' + e.related + ')' if e.related is not None else ''

            print(('{:3} {:16.3f} {:3} {:24} {:12}'.format(
                e.lcore, timestamp, e.poller if e.poller is not None else '',
                e.lcore, timestamp, e.owner if e.owner is not None else '',
                e.tpoint.name, f'size: {e.size}' if e.size else '') +
                (f'id: {e.object_id + related:12} ' if e.object_id is not None else '') +
                (f'time: {diff:<8.3f} ' if diff is not None else '') +