All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf inject: Fix repipe usage
@ 2021-04-01 10:36 Adrian Hunter
  2021-04-01 14:05 ` Jiri Olsa
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Hunter @ 2021-04-01 10:36 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Jiri Olsa; +Cc: linux-kernel

Since commit 14d3d5405253 ("perf session: Try to read pipe data from file")
perf inject has started printing "PERFILE2h" when not processing pipes.

The commit exposed perf to the possiblity that the input is not a pipe but
the 'repipe' parameter gets used. That causes the printing because perf
inject sets 'repipe' to true always.

The 'repipe' parameter of perf_session__new() is used by 2 functions:
	- perf_file_header__read_pipe()
	- trace_report()
In both cases, the functions copy data to STDOUT_FILENO when 'repipe' is
true.

Fix by setting 'repipe' to true only if the output is a pipe.

Fixes: e558a5bd8b74 ("perf inject: Work with files")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
 tools/perf/builtin-inject.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index 6fe44d97fde5..ddccc0eb7390 100644
--- a/tools/perf/builtin-inject.c
+++ b/tools/perf/builtin-inject.c
@@ -906,7 +906,7 @@ int cmd_inject(int argc, const char **argv)
 	}
 
 	data.path = inject.input_name;
-	inject.session = perf_session__new(&data, true, &inject.tool);
+	inject.session = perf_session__new(&data, inject.output.is_pipe, &inject.tool);
 	if (IS_ERR(inject.session))
 		return PTR_ERR(inject.session);
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-02 13:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-01 10:36 [PATCH] perf inject: Fix repipe usage Adrian Hunter
2021-04-01 14:05 ` Jiri Olsa
2021-04-02 13:33   ` 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.