On Fri, Sep 20, 2019 at 1:50 AM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > On Tue, 17 Sep 2019 22:03:38 -0400 > Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > > From: Tzvetomir Stoyanov <tstoyanov@xxxxxxxxxx> > > > > Libtraceevent APIs for printing various trace events information are > > complicated, there are complex extra parameters. To control the way > > event information is printed, the user should call a set of functions in > > a specific sequence. > > > > These APIs are reimplemented to provide a more simple interface for > > printing event information. > > > > Removed APIs: > > > > tep_print_event_task() > > tep_print_event_time() > > tep_print_event_data() > > tep_event_info() > > tep_is_latency_format() > > tep_set_latency_format() > > tep_data_latency_format() > > tep_set_print_raw() > > > > A new API for printing event information is introduced: > > void tep_print_event(struct tep_handle *tep, struct trace_seq *s, > > struct tep_record *record, const char *fmt, ...); > > where "fmt" is a printf-like format string, followed by the event > > fields to be printed. Supported fields: > > TEP_PRINT_PID, "%d" - event PID > > TEP_PRINT_CPU, "%d" - event CPU > > TEP_PRINT_COMM, "%s" - event command string > > TEP_PRINT_NAME, "%s" - event name > > TEP_PRINT_LATENCY, "%s" - event latency > > TEP_PRINT_TIME, %d - event time stamp. A divisor and precision > > can be specified as part of this format string: > > "%precision.divisord". Example: > > "%3.1000d" - divide the time by 1000 and print the first 3 digits > > before the dot. Thus, the time stamp "123456000" will be printed as > > "123.456" > > TEP_PRINT_INFO, "%s" - event information. > > TEP_PRINT_INFO_RAW, "%s" - event information, in raw format. > > > > Example: > > tep_print_event(tep, s, record, "%16s-%-5d [%03d] %s %6.1000d %s %s", > > TEP_PRINT_COMM, TEP_PRINT_PID, TEP_PRINT_CPU, > > TEP_PRINT_LATENCY, TEP_PRINT_TIME, TEP_PRINT_NAME, TEP_PRINT_INFO); > > Output: > > ls-11314 [005] d.h. 185207.366383 function __wake_up > > > > Signed-off-by: Tzvetomir Stoyanov <tstoyanov@xxxxxxxxxx> > > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > > Cc: Jiri Olsa <jolsa@xxxxxxxxxx> > > Cc: Namhyung Kim <namhyung@xxxxxxxxxx> > > Cc: linux-trace-devel@xxxxxxxxxxxxxxx > > Cc: Patrick McLean <chutzpah@xxxxxxxxxx> > > Link: https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Flore.kernel.org%2Flinux-trace-devel%2F20190801074959.22023-2-tz.stoyanov%40gmail.com&data=02%7C01%7Ctstoyanov%40vmware.com%7Cb43e28f618db4d1ccc4908d73d53caeb%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637045302420525409&sdata=XVy%2FprqSVkHVUJ0Vi1gSeQwnHmc82kipnkMbN%2BaWmiA%3D&reserved=0 > > Link: https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Flore.kernel.org%2Flkml%2F20190805204355.041132030%40goodmis.org&data=02%7C01%7Ctstoyanov%40vmware.com%7Cb43e28f618db4d1ccc4908d73d53caeb%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637045302420535406&sdata=LbuU7Ef2Slbl6%2BVCtw7DRzV5TRp5GrceD6E%2FZ8LbGKM%3D&reserved=0 > > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> > > [ Added support for trace-cmd trace-read.c ] > > Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> > > > I needed to modify this with the following changes: > > diff --git a/kernel-shark/src/libkshark.c b/kernel-shark/src/libkshark.c > index 47ec9c21..4207ae6f 100644 > --- a/kernel-shark/src/libkshark.c > +++ b/kernel-shark/src/libkshark.c > @@ -1103,7 +1103,7 @@ static const char *kshark_get_latency(struct tep_handle *pe, > return NULL; > > trace_seq_reset(&seq); > - tep_data_latency_format(pe, &seq, record); > + tep_print_event(pe, &seq, record, "%s", TEP_PRINT_LATENCY); > return seq.buffer; > } > > @@ -1117,7 +1117,7 @@ static const char *kshark_get_info(struct tep_handle *pe, > return NULL; > > trace_seq_reset(&seq); > - tep_event_info(&seq, event, record); > + tep_print_event(pe, &seq, record, "%s", TEP_PRINT_INFO); > > /* > * The event info string contains a trailing newline. > > > -- Steve Changes looks OK, thanks Steven. Reviewed-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@xxxxxxxxx> -- Tzvetomir (Ceco) Stoyanov VMware Open Source Technology Center
![]() |