* [PATCH] perf report: Output non-zero offset for decompressed records
@ 2021-09-29 9:14 Alexey Bayduraev
2021-10-04 6:42 ` Jiri Olsa
0 siblings, 1 reply; 5+ messages in thread
From: Alexey Bayduraev @ 2021-09-29 9:14 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Jiri Olsa, Namhyung Kim, Alexander Shishkin, Peter Zijlstra,
Ingo Molnar, linux-kernel, Andi Kleen, Adrian Hunter,
Alexander Antonov, Alexei Budankov, Riccardo Mancini
Print offset of PERF_RECORD_COMPRESSED record instead of zero for
decompressed records in raw trace dump (-D option of perf-report):
0x17cf08 [0x28]: event: 9
instead of:
0 [0x28]: event: 9
The fix is not critical, because currently file_pos for compressed
events is used in perf_session__process_event only to show offsets
in the raw dump.
This patch was separated from patchset:
https://lore.kernel.org/lkml/cover.1629186429.git.alexey.v.bayduraev@linux.intel.com/
and was already rewieved.
Acked-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Andi Kleen <ak@linux.intel.com>
Reviewed-by: Riccardo Mancini <rickyman7@gmail.com>
Tested-by: Riccardo Mancini <rickyman7@gmail.com>
Signed-off-by: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
---
tools/perf/util/session.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 069c2cfdd3be..352f16076e01 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -2116,7 +2116,7 @@ fetch_decomp_event(u64 head, size_t mmap_size, char *buf, bool needs_swap)
static int __perf_session__process_decomp_events(struct perf_session *session)
{
s64 skip;
- u64 size, file_pos = 0;
+ u64 size;
struct decomp *decomp = session->decomp_last;
if (!decomp)
@@ -2132,7 +2132,7 @@ static int __perf_session__process_decomp_events(struct perf_session *session)
size = event->header.size;
if (size < sizeof(struct perf_event_header) ||
- (skip = perf_session__process_event(session, event, file_pos)) < 0) {
+ (skip = perf_session__process_event(session, event, decomp->file_pos)) < 0) {
pr_err("%#" PRIx64 " [%#x]: failed to process type: %d\n",
decomp->file_pos + decomp->head, event->header.size, event->header.type);
return -EINVAL;
--
2.19.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] perf report: Output non-zero offset for decompressed records
2021-09-29 9:14 [PATCH] perf report: Output non-zero offset for decompressed records Alexey Bayduraev
@ 2021-10-04 6:42 ` Jiri Olsa
2021-10-04 7:00 ` Bayduraev, Alexey V
0 siblings, 1 reply; 5+ messages in thread
From: Jiri Olsa @ 2021-10-04 6:42 UTC (permalink / raw)
To: Alexey Bayduraev
Cc: Arnaldo Carvalho de Melo, Namhyung Kim, Alexander Shishkin,
Peter Zijlstra, Ingo Molnar, linux-kernel, Andi Kleen,
Adrian Hunter, Alexander Antonov, Alexei Budankov,
Riccardo Mancini
On Wed, Sep 29, 2021 at 12:14:45PM +0300, Alexey Bayduraev wrote:
> Print offset of PERF_RECORD_COMPRESSED record instead of zero for
> decompressed records in raw trace dump (-D option of perf-report):
>
> 0x17cf08 [0x28]: event: 9
>
> instead of:
>
> 0 [0x28]: event: 9
>
> The fix is not critical, because currently file_pos for compressed
> events is used in perf_session__process_event only to show offsets
> in the raw dump.
hi,
I don't mind the change just curious, because I see also:
perf_session__process_event
perf_session__process_user_event
lseek(fd, file_offset, ...
which is not raw dump as the comment suggests
thanks,
jirka
>
> This patch was separated from patchset:
> https://lore.kernel.org/lkml/cover.1629186429.git.alexey.v.bayduraev@linux.intel.com/
> and was already rewieved.
>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
> Acked-by: Andi Kleen <ak@linux.intel.com>
> Reviewed-by: Riccardo Mancini <rickyman7@gmail.com>
> Tested-by: Riccardo Mancini <rickyman7@gmail.com>
> Signed-off-by: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
> ---
> tools/perf/util/session.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> index 069c2cfdd3be..352f16076e01 100644
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -2116,7 +2116,7 @@ fetch_decomp_event(u64 head, size_t mmap_size, char *buf, bool needs_swap)
> static int __perf_session__process_decomp_events(struct perf_session *session)
> {
> s64 skip;
> - u64 size, file_pos = 0;
> + u64 size;
> struct decomp *decomp = session->decomp_last;
>
> if (!decomp)
> @@ -2132,7 +2132,7 @@ static int __perf_session__process_decomp_events(struct perf_session *session)
> size = event->header.size;
>
> if (size < sizeof(struct perf_event_header) ||
> - (skip = perf_session__process_event(session, event, file_pos)) < 0) {
> + (skip = perf_session__process_event(session, event, decomp->file_pos)) < 0) {
> pr_err("%#" PRIx64 " [%#x]: failed to process type: %d\n",
> decomp->file_pos + decomp->head, event->header.size, event->header.type);
> return -EINVAL;
> --
> 2.19.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf report: Output non-zero offset for decompressed records
2021-10-04 6:42 ` Jiri Olsa
@ 2021-10-04 7:00 ` Bayduraev, Alexey V
2021-10-04 7:06 ` Jiri Olsa
0 siblings, 1 reply; 5+ messages in thread
From: Bayduraev, Alexey V @ 2021-10-04 7:00 UTC (permalink / raw)
To: Jiri Olsa
Cc: Arnaldo Carvalho de Melo, Namhyung Kim, Alexander Shishkin,
Peter Zijlstra, Ingo Molnar, linux-kernel, Andi Kleen,
Adrian Hunter, Alexander Antonov, Alexei Budankov,
Riccardo Mancini
On 04.10.2021 9:42, Jiri Olsa wrote:
> On Wed, Sep 29, 2021 at 12:14:45PM +0300, Alexey Bayduraev wrote:
>> Print offset of PERF_RECORD_COMPRESSED record instead of zero for
>> decompressed records in raw trace dump (-D option of perf-report):
>>
>> 0x17cf08 [0x28]: event: 9
>>
>> instead of:
>>
>> 0 [0x28]: event: 9
>>
>> The fix is not critical, because currently file_pos for compressed
>> events is used in perf_session__process_event only to show offsets
>> in the raw dump.
>
> hi,
> I don't mind the change just curious, because I see also:
>
> perf_session__process_event
> perf_session__process_user_event
> lseek(fd, file_offset, ...
>
> which is not raw dump as the comment suggests
Hi,
Yes, but this "lseek" only works for user events, whereas the
PERF_RECORD_COMPRESSED record shouln't contain such events.
Currently, the PERF_RECORD_COMPRESSED container can only pack
kernel events.
Regards,
Alexey
>
> thanks,
> jirka
>
>>
>> This patch was separated from patchset:
>> https://lore.kernel.org/lkml/cover.1629186429.git.alexey.v.bayduraev@linux.intel.com/
>> and was already rewieved.
>>
>> Acked-by: Namhyung Kim <namhyung@kernel.org>
>> Acked-by: Andi Kleen <ak@linux.intel.com>
>> Reviewed-by: Riccardo Mancini <rickyman7@gmail.com>
>> Tested-by: Riccardo Mancini <rickyman7@gmail.com>
>> Signed-off-by: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
>> ---
>> tools/perf/util/session.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
>> index 069c2cfdd3be..352f16076e01 100644
>> --- a/tools/perf/util/session.c
>> +++ b/tools/perf/util/session.c
>> @@ -2116,7 +2116,7 @@ fetch_decomp_event(u64 head, size_t mmap_size, char *buf, bool needs_swap)
>> static int __perf_session__process_decomp_events(struct perf_session *session)
>> {
>> s64 skip;
>> - u64 size, file_pos = 0;
>> + u64 size;
>> struct decomp *decomp = session->decomp_last;
>>
>> if (!decomp)
>> @@ -2132,7 +2132,7 @@ static int __perf_session__process_decomp_events(struct perf_session *session)
>> size = event->header.size;
>>
>> if (size < sizeof(struct perf_event_header) ||
>> - (skip = perf_session__process_event(session, event, file_pos)) < 0) {
>> + (skip = perf_session__process_event(session, event, decomp->file_pos)) < 0) {
>> pr_err("%#" PRIx64 " [%#x]: failed to process type: %d\n",
>> decomp->file_pos + decomp->head, event->header.size, event->header.type);
>> return -EINVAL;
>> --
>> 2.19.0
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf report: Output non-zero offset for decompressed records
2021-10-04 7:00 ` Bayduraev, Alexey V
@ 2021-10-04 7:06 ` Jiri Olsa
2021-10-08 18:44 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 5+ messages in thread
From: Jiri Olsa @ 2021-10-04 7:06 UTC (permalink / raw)
To: Bayduraev, Alexey V
Cc: Arnaldo Carvalho de Melo, Namhyung Kim, Alexander Shishkin,
Peter Zijlstra, Ingo Molnar, linux-kernel, Andi Kleen,
Adrian Hunter, Alexander Antonov, Alexei Budankov,
Riccardo Mancini
On Mon, Oct 04, 2021 at 10:00:52AM +0300, Bayduraev, Alexey V wrote:
>
> On 04.10.2021 9:42, Jiri Olsa wrote:
> > On Wed, Sep 29, 2021 at 12:14:45PM +0300, Alexey Bayduraev wrote:
> >> Print offset of PERF_RECORD_COMPRESSED record instead of zero for
> >> decompressed records in raw trace dump (-D option of perf-report):
> >>
> >> 0x17cf08 [0x28]: event: 9
> >>
> >> instead of:
> >>
> >> 0 [0x28]: event: 9
> >>
> >> The fix is not critical, because currently file_pos for compressed
> >> events is used in perf_session__process_event only to show offsets
> >> in the raw dump.
> >
> > hi,
> > I don't mind the change just curious, because I see also:
> >
> > perf_session__process_event
> > perf_session__process_user_event
> > lseek(fd, file_offset, ...
> >
> > which is not raw dump as the comment suggests
>
> Hi,
>
> Yes, but this "lseek" only works for user events, whereas the
> PERF_RECORD_COMPRESSED record shouln't contain such events.
> Currently, the PERF_RECORD_COMPRESSED container can only pack
> kernel events.
Acked-by: Jiri Olsa <jolsa@redhat.com>
thanks,
jirka
>
> Regards,
> Alexey
>
> >
> > thanks,
> > jirka
> >
> >>
> >> This patch was separated from patchset:
> >> https://lore.kernel.org/lkml/cover.1629186429.git.alexey.v.bayduraev@linux.intel.com/
> >> and was already rewieved.
> >>
> >> Acked-by: Namhyung Kim <namhyung@kernel.org>
> >> Acked-by: Andi Kleen <ak@linux.intel.com>
> >> Reviewed-by: Riccardo Mancini <rickyman7@gmail.com>
> >> Tested-by: Riccardo Mancini <rickyman7@gmail.com>
> >> Signed-off-by: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
> >> ---
> >> tools/perf/util/session.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> >> index 069c2cfdd3be..352f16076e01 100644
> >> --- a/tools/perf/util/session.c
> >> +++ b/tools/perf/util/session.c
> >> @@ -2116,7 +2116,7 @@ fetch_decomp_event(u64 head, size_t mmap_size, char *buf, bool needs_swap)
> >> static int __perf_session__process_decomp_events(struct perf_session *session)
> >> {
> >> s64 skip;
> >> - u64 size, file_pos = 0;
> >> + u64 size;
> >> struct decomp *decomp = session->decomp_last;
> >>
> >> if (!decomp)
> >> @@ -2132,7 +2132,7 @@ static int __perf_session__process_decomp_events(struct perf_session *session)
> >> size = event->header.size;
> >>
> >> if (size < sizeof(struct perf_event_header) ||
> >> - (skip = perf_session__process_event(session, event, file_pos)) < 0) {
> >> + (skip = perf_session__process_event(session, event, decomp->file_pos)) < 0) {
> >> pr_err("%#" PRIx64 " [%#x]: failed to process type: %d\n",
> >> decomp->file_pos + decomp->head, event->header.size, event->header.type);
> >> return -EINVAL;
> >> --
> >> 2.19.0
> >>
> >
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf report: Output non-zero offset for decompressed records
2021-10-04 7:06 ` Jiri Olsa
@ 2021-10-08 18:44 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-10-08 18:44 UTC (permalink / raw)
To: Jiri Olsa
Cc: Bayduraev, Alexey V, Namhyung Kim, Alexander Shishkin,
Peter Zijlstra, Ingo Molnar, linux-kernel, Andi Kleen,
Adrian Hunter, Alexander Antonov, Alexei Budankov,
Riccardo Mancini
Em Mon, Oct 04, 2021 at 09:06:36AM +0200, Jiri Olsa escreveu:
> On Mon, Oct 04, 2021 at 10:00:52AM +0300, Bayduraev, Alexey V wrote:
> > On 04.10.2021 9:42, Jiri Olsa wrote:
> > > On Wed, Sep 29, 2021 at 12:14:45PM +0300, Alexey Bayduraev wrote:
> > >> Print offset of PERF_RECORD_COMPRESSED record instead of zero for
> > >> decompressed records in raw trace dump (-D option of perf-report):
> > >> 0x17cf08 [0x28]: event: 9
> > >> instead of:
> > >> 0 [0x28]: event: 9
> > >> The fix is not critical, because currently file_pos for compressed
> > >> events is used in perf_session__process_event only to show offsets
> > >> in the raw dump.
> > > I don't mind the change just curious, because I see also:
> > >
> > > perf_session__process_event
> > > perf_session__process_user_event
> > > lseek(fd, file_offset, ...
> > > which is not raw dump as the comment suggests
> > Yes, but this "lseek" only works for user events, whereas the
> > PERF_RECORD_COMPRESSED record shouln't contain such events.
> > Currently, the PERF_RECORD_COMPRESSED container can only pack
> > kernel events.
> Acked-by: Jiri Olsa <jolsa@redhat.com>
Thanks, applied.
- Arnaldo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-10-08 18:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29 9:14 [PATCH] perf report: Output non-zero offset for decompressed records Alexey Bayduraev
2021-10-04 6:42 ` Jiri Olsa
2021-10-04 7:00 ` Bayduraev, Alexey V
2021-10-04 7:06 ` Jiri Olsa
2021-10-08 18:44 ` Arnaldo Carvalho de Melo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.