tools lib traceevent: Add API to read time information from kbuffer
Add the functions kbuffer_subbuf_timestamp() and kbuffer_ptr_delta() to get the timing data stored in the ring buffer that is used to produced the time stamps of the records. This is useful for tools like trace-cmd to be able to display the content of the read data to understand why the records show the time stamps that they do. Link: http://lore.kernel.org/linux-trace-devel/20200625100516.365338-2-tz.stoyanov@gmail.com Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> [ Ported from trace-cmd.git ] Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/lkml/20200702185703.619656282@goodmis.org Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
f18d5cf86c
commit
374855c5e4
@ -546,6 +546,34 @@ int kbuffer_load_subbuffer(struct kbuffer *kbuf, void *subbuffer)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* kbuffer_subbuf_timestamp - read the timestamp from a sub buffer
|
||||
* @kbuf: The kbuffer to load
|
||||
* @subbuf: The subbuffer to read from.
|
||||
*
|
||||
* Return the timestamp from a subbuffer.
|
||||
*/
|
||||
unsigned long long kbuffer_subbuf_timestamp(struct kbuffer *kbuf, void *subbuf)
|
||||
{
|
||||
return kbuf->read_8(subbuf);
|
||||
}
|
||||
|
||||
/**
|
||||
* kbuffer_ptr_delta - read the delta field from a record
|
||||
* @kbuf: The kbuffer to load
|
||||
* @ptr: The record in the buffe.
|
||||
*
|
||||
* Return the timestamp delta from a record
|
||||
*/
|
||||
unsigned int kbuffer_ptr_delta(struct kbuffer *kbuf, void *ptr)
|
||||
{
|
||||
unsigned int type_len_ts;
|
||||
|
||||
type_len_ts = read_4(kbuf, ptr);
|
||||
return ts4host(kbuf, type_len_ts);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* kbuffer_read_event - read the next event in the kbuffer subbuffer
|
||||
* @kbuf: The kbuffer to read from
|
||||
|
@ -49,6 +49,8 @@ int kbuffer_load_subbuffer(struct kbuffer *kbuf, void *subbuffer);
|
||||
void *kbuffer_read_event(struct kbuffer *kbuf, unsigned long long *ts);
|
||||
void *kbuffer_next_event(struct kbuffer *kbuf, unsigned long long *ts);
|
||||
unsigned long long kbuffer_timestamp(struct kbuffer *kbuf);
|
||||
unsigned long long kbuffer_subbuf_timestamp(struct kbuffer *kbuf, void *subbuf);
|
||||
unsigned int kbuffer_ptr_delta(struct kbuffer *kbuf, void *ptr);
|
||||
|
||||
void *kbuffer_translate_data(int swap, void *data, unsigned int *size);
|
||||
|
||||
|
Reference in New Issue
Block a user