Commit 67eb86e3 authored by Jim Harris's avatar Jim Harris
Browse files

trace_parser: add flag for arguments used for related objects



Some tracepoints have an argument that is a context pointer for some other
object type. The trace app already decode this information, showing the ID for
that related object.

Since the ID is already shown, the context pointer itself isn't useful, so
add a flag to note those arguments, so we can omit printing the context
pointer.

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


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
parent b4ba6cdf
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -164,6 +164,12 @@ print_event(struct spdk_trace_parser_entry *entry, uint64_t tsc_rate, uint64_t t
	}

	for (i = 0; i < d->num_args; ++i) {
		if (entry->args[i].is_related) {
			/* This argument was already implicitly shown by its
			 * associated related object ID.
			 */
			continue;
		}
		switch (d->args[i].type) {
		case SPDK_TRACE_ARG_TYPE_PTR:
			print_ptr(d->args[i].name, (uint64_t)entry->args[i].u.pointer);
+1 −0
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ struct spdk_trace_parser_entry {
	uint8_t			related_type;
	/** Tracepoint arguments */
	struct {
		bool		is_related;
		union {
			uint64_t	integer;
			void		*pointer;
+2 −0
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ spdk_trace_parser::build_arg(argument_context *argctx, const spdk_trace_argument
	size_t curlen, argoff;

	argoff = 0;
	pe->args[argid].is_related = false;
	/* Make sure that if we only copy a 4-byte integer, that the upper bytes have already been
	 * zeroed.
	 */
@@ -212,6 +213,7 @@ spdk_trace_parser::next_entry(spdk_trace_parser_entry *pe)
		if (related_kv != stats->index.end()) {
			pe->related_index = related_kv->second;
			pe->related_type = tpoint->related_objects[i].object_type;
			pe->args[tpoint->related_objects[i].arg_index].is_related = true;
			break;
		}
	}