Re: [PATCH 4.19 005/110] perf data: Dont store auxtrace index for directory data file

From: Dan Rue
Date: Thu Apr 18 2019 - 14:15:31 EST


On Thu, Apr 18, 2019 at 07:55:54PM +0200, Greg Kroah-Hartman wrote:
> [ Upstream commit cd3dd8dd8ff62374d90cb3f2e54b8c94106c7810 ]
>
> We can't store the auxtrace index when we store into multiple files,
> because we keep only offset for it, not the file.
>
> The auxtrace data will be processed correctly in the 'pipe' mode.
>
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> Cc: Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx>
> Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Stephane Eranian <eranian@xxxxxxxxxx>
> Link: http://lkml.kernel.org/r/20190308134745.5057-3-jolsa@xxxxxxxxxx
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
> tools/perf/builtin-record.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 22ebeb92ac51..f5b438486a64 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -178,7 +178,7 @@ static int record__process_auxtrace(struct perf_tool *tool,
> size_t padding;
> u8 pad[8] = {0};
>
> - if (!perf_data__is_pipe(data)) {
> + if (!perf_data__is_pipe(data) && !perf_data__is_dir(data)) {

This one causes a build failure when building perf:

builtin-record.c: In function ârecord__process_auxtraceâ:
builtin-record.c:181:36: error: implicit declaration of function âperf_data__is_dirâ; did you mean âperf_data__is_pipeâ? [-Werror=implicit-function-declaration]
if (!perf_data__is_pipe(data) && !perf_data__is_dir(data)) {
^~~~~~~~~~~~~~~~~
perf_data__is_pipe
builtin-record.c:181:36: error: nested extern declaration of âperf_data__is_dirâ [-Werror=nested-externs]

It seems to require 258031c017c3 ("perf header: Add DIR_FORMAT feature
to describe directory data"), which doesn't backport cleanly. Dropping
f54f24d0f19a ("perf data: Don't store auxtrace index for directory data
file") does seem to fix the issue.

> off_t file_offset;
> int fd = perf_data__fd(data);
> int err;
> --
> 2.19.1
>
>
>

--
Linaro - Kernel Validation