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

* Re: [PATCH] perf inject: Fix repipe usage
  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
  0 siblings, 1 reply; 3+ messages in thread
From: Jiri Olsa @ 2021-04-01 14:05 UTC (permalink / raw)
  To: Adrian Hunter; +Cc: Arnaldo Carvalho de Melo, linux-kernel

On Thu, Apr 01, 2021 at 01:36:05PM +0300, Adrian Hunter wrote:
> 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>

Acked-by: Jiri Olsa <jolsa@redhat.com>

thanks,
jirka

> ---
>  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	[flat|nested] 3+ messages in thread

* Re: [PATCH] perf inject: Fix repipe usage
  2021-04-01 14:05 ` Jiri Olsa
@ 2021-04-02 13:33   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-04-02 13:33 UTC (permalink / raw)
  To: Jiri Olsa; +Cc: Adrian Hunter, linux-kernel

Em Thu, Apr 01, 2021 at 04:05:13PM +0200, Jiri Olsa escreveu:
> On Thu, Apr 01, 2021 at 01:36:05PM +0300, Adrian Hunter wrote:
> > 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>
> 
> Acked-by: Jiri Olsa <jolsa@redhat.com>

Thanks, applied.

- Arnaldo


^ permalink raw reply	[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.