* Re: [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset()
2016-10-01 10:17 [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset() Namhyung Kim
@ 2016-10-05 11:37 ` Arnaldo Carvalho de Melo
2016-10-05 13:28 ` Steven Rostedt
2016-10-06 22:41 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2 siblings, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-10-05 11:37 UTC (permalink / raw)
To: Steven Rostedt; +Cc: Namhyung Kim, Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML
Em Sat, Oct 01, 2016 at 07:17:00PM +0900, Namhyung Kim escreveu:
> When it's called with an offset less than or equal to the first event,
> it'll return a garbage value since the data is not initialized.
Steven, Ack?
- Arnaldo
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/lib/traceevent/kbuffer-parse.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/lib/traceevent/kbuffer-parse.c b/tools/lib/traceevent/kbuffer-parse.c
> index 3bcada3ae05a..65984f1c2974 100644
> --- a/tools/lib/traceevent/kbuffer-parse.c
> +++ b/tools/lib/traceevent/kbuffer-parse.c
> @@ -622,6 +622,7 @@ void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset,
>
> /* Reset the buffer */
> kbuffer_load_subbuffer(kbuf, kbuf->subbuffer);
> + data = kbuffer_read_event(kbuf, ts);
>
> while (kbuf->curr < offset) {
> data = kbuffer_next_event(kbuf, ts);
> --
> 2.10.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset()
2016-10-01 10:17 [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset() Namhyung Kim
2016-10-05 11:37 ` Arnaldo Carvalho de Melo
@ 2016-10-05 13:28 ` Steven Rostedt
2016-10-07 4:19 ` Namhyung Kim
2016-10-06 22:41 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2 siblings, 1 reply; 6+ messages in thread
From: Steven Rostedt @ 2016-10-05 13:28 UTC (permalink / raw)
To: Namhyung Kim
Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML
On Sat, 1 Oct 2016 19:17:00 +0900
Namhyung Kim <namhyung@kernel.org> wrote:
> When it's called with an offset less than or equal to the first event,
> it'll return a garbage value since the data is not initialized.
Well, it can at most be equal to (unless offset is negative) because
kbuffer_load_subbuffer() sets kbuf->curr to zero.
But that said, it looks like offset == 0 is buggy.
Acked-by: Steven Rostedt <rostedt@goodmis.org>
-- Steve
>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/lib/traceevent/kbuffer-parse.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/lib/traceevent/kbuffer-parse.c b/tools/lib/traceevent/kbuffer-parse.c
> index 3bcada3ae05a..65984f1c2974 100644
> --- a/tools/lib/traceevent/kbuffer-parse.c
> +++ b/tools/lib/traceevent/kbuffer-parse.c
> @@ -622,6 +622,7 @@ void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset,
>
> /* Reset the buffer */
> kbuffer_load_subbuffer(kbuf, kbuf->subbuffer);
> + data = kbuffer_read_event(kbuf, ts);
>
> while (kbuf->curr < offset) {
> data = kbuffer_next_event(kbuf, ts);
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset()
2016-10-05 13:28 ` Steven Rostedt
@ 2016-10-07 4:19 ` Namhyung Kim
2016-10-07 14:06 ` Steven Rostedt
0 siblings, 1 reply; 6+ messages in thread
From: Namhyung Kim @ 2016-10-07 4:19 UTC (permalink / raw)
To: Steven Rostedt
Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML
Hi Steve,
On Wed, Oct 05, 2016 at 09:28:01AM -0400, Steven Rostedt wrote:
> On Sat, 1 Oct 2016 19:17:00 +0900
> Namhyung Kim <namhyung@kernel.org> wrote:
>
> > When it's called with an offset less than or equal to the first event,
> > it'll return a garbage value since the data is not initialized.
>
> Well, it can at most be equal to (unless offset is negative) because
> kbuffer_load_subbuffer() sets kbuf->curr to zero.
Actually kbuffer_load_subbuffer() calls kbuf->next_event(). Inside
the function it has a loop updating next valid event. Sometimes, the
data starts with TIME_EXTEND with value of 0 and the loop skips it
which ended up setting kbuf->curr to 8. :)
I'll take a look it later.
>
> But that said, it looks like offset == 0 is buggy.
>
> Acked-by: Steven Rostedt <rostedt@goodmis.org>
Thanks,
Namhyung
>
>
> -- Steve
>
> >
> > Cc: Steven Rostedt <rostedt@goodmis.org>
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> > ---
> > tools/lib/traceevent/kbuffer-parse.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/tools/lib/traceevent/kbuffer-parse.c b/tools/lib/traceevent/kbuffer-parse.c
> > index 3bcada3ae05a..65984f1c2974 100644
> > --- a/tools/lib/traceevent/kbuffer-parse.c
> > +++ b/tools/lib/traceevent/kbuffer-parse.c
> > @@ -622,6 +622,7 @@ void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset,
> >
> > /* Reset the buffer */
> > kbuffer_load_subbuffer(kbuf, kbuf->subbuffer);
> > + data = kbuffer_read_event(kbuf, ts);
> >
> > while (kbuf->curr < offset) {
> > data = kbuffer_next_event(kbuf, ts);
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset()
2016-10-07 4:19 ` Namhyung Kim
@ 2016-10-07 14:06 ` Steven Rostedt
0 siblings, 0 replies; 6+ messages in thread
From: Steven Rostedt @ 2016-10-07 14:06 UTC (permalink / raw)
To: Namhyung Kim
Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML
On Fri, 7 Oct 2016 13:19:08 +0900
Namhyung Kim <namhyung@kernel.org> wrote:
> Actually kbuffer_load_subbuffer() calls kbuf->next_event(). Inside
> the function it has a loop updating next valid event. Sometimes, the
> data starts with TIME_EXTEND with value of 0 and the loop skips it
> which ended up setting kbuf->curr to 8. :)
Right, because kbuffer_read_at_offset() should not return a TIME_EXTEND.
-- Steve
^ permalink raw reply [flat|nested] 6+ messages in thread
* [tip:perf/urgent] tools lib traceevent: Fix kbuffer_read_at_offset()
2016-10-01 10:17 [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset() Namhyung Kim
2016-10-05 11:37 ` Arnaldo Carvalho de Melo
2016-10-05 13:28 ` Steven Rostedt
@ 2016-10-06 22:41 ` tip-bot for Namhyung Kim
2 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Namhyung Kim @ 2016-10-06 22:41 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, tglx, namhyung, rostedt, jolsa, linux-kernel, peterz, hpa, mingo
Commit-ID: a130347973c408c0e0017a52c74cbc3226c1f0ef
Gitweb: http://git.kernel.org/tip/a130347973c408c0e0017a52c74cbc3226c1f0ef
Author: Namhyung Kim <namhyung@kernel.org>
AuthorDate: Sat, 1 Oct 2016 19:17:00 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 5 Oct 2016 11:36:22 -0300
tools lib traceevent: Fix kbuffer_read_at_offset()
When it's called with an offset less than or equal to the first event,
it'll return a garbage value since the data is not initialized.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20161001101700.29146-1-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/traceevent/kbuffer-parse.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/lib/traceevent/kbuffer-parse.c b/tools/lib/traceevent/kbuffer-parse.c
index 3bcada3..65984f1 100644
--- a/tools/lib/traceevent/kbuffer-parse.c
+++ b/tools/lib/traceevent/kbuffer-parse.c
@@ -622,6 +622,7 @@ void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset,
/* Reset the buffer */
kbuffer_load_subbuffer(kbuf, kbuf->subbuffer);
+ data = kbuffer_read_event(kbuf, ts);
while (kbuf->curr < offset) {
data = kbuffer_next_event(kbuf, ts);
^ permalink raw reply related [flat|nested] 6+ messages in thread