Re: [RFC v3 2/3] interconnect: Add basic event tracing

From: Steven Rostedt
Date: Fri Sep 08 2017 - 14:13:28 EST


On Fri, 8 Sep 2017 20:18:29 +0300
Georgi Djakov <georgi.djakov@xxxxxxxxxx> wrote:

> diff --git a/include/trace/events/interconnect.h b/include/trace/events/interconnect.h
> new file mode 100644
> index 000000000000..c4a72163873c
> --- /dev/null
> +++ b/include/trace/events/interconnect.h
> @@ -0,0 +1,45 @@
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM interconnect
> +
> +#if !defined(_TRACE_INTERCONNECT_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_INTERCONNECT_H
> +
> +#include <linux/tracepoint.h>
> +
> +struct interconnect_path;
> +
> +DECLARE_EVENT_CLASS(interconnect_path,
> +
> + TP_PROTO(struct interconnect_path *path),
> +
> + TP_ARGS(path),
> +
> + TP_STRUCT__entry(
> + __field(struct interconnect_path *, path)
> + ),
> +
> + TP_fast_assign(
> + __entry->path = path;
> + ),
> +
> + TP_printk("INTERCONNECT: %p", __entry->path)

You're passing in an interconnect_path and only recording the pointer
to it? Wouldn't it be useful to record other aspects? Like the number
of nodes, the avg and peak bw of each node?

-- Steve

> +);
> +
> +DEFINE_EVENT(interconnect_path, interconnect_set,
> +
> + TP_PROTO(struct interconnect_path *path),
> +
> + TP_ARGS(path)
> +);
> +
> +DEFINE_EVENT(interconnect_path, interconnect_set_complete,
> +
> + TP_PROTO(struct interconnect_path *path),
> +
> + TP_ARGS(path)
> +);
> +
> +#endif /* _TRACE_INTERCONNECT_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>