linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] perf test session topology: Fix data path
@ 2020-04-23 11:53 Tommi Rantala
  2020-04-23 12:17 ` Jiri Olsa
  2020-05-08 13:05 ` [tip: perf/core] " tip-bot2 for Tommi Rantala
  0 siblings, 2 replies; 3+ messages in thread
From: Tommi Rantala @ 2020-04-23 11:53 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Ingo Molnar
  Cc: Tommi Rantala, Peter Zijlstra, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, Ravi Bangoria, Mamatha Inamdar,
	linux-kernel

Commit 2d4f27999b88 ("perf data: Add global path holder") missed path
conversion in tests/topology.c, causing the "Session topology" testcase
to "hang" (waits forever for input from stdin) when doing "ssh $VM perf
test".

Can be reproduced by running "cat | perf test topo", and crashed by
replacing cat with true:

  $ true | perf test -v topo
  40: Session topology                                      :
  --- start ---
  test child forked, pid 3638
  templ file: /tmp/perf-test-QPvAch
  incompatible file format
  incompatible file format (rerun with -v to learn more)
  free(): invalid pointer
  test child interrupted
  ---- end ----
  Session topology: FAILED!

Fixes: 2d4f27999b88 ("perf data: Add global path holder")
Signed-off-by: Tommi Rantala <tommi.t.rantala@nokia.com>
---
 tools/perf/tests/topology.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/tools/perf/tests/topology.c b/tools/perf/tests/topology.c
index 4a800499d7c3..22daf2bdf5fa 100644
--- a/tools/perf/tests/topology.c
+++ b/tools/perf/tests/topology.c
@@ -33,10 +33,8 @@ static int session_write_header(char *path)
 {
 	struct perf_session *session;
 	struct perf_data data = {
-		.file      = {
-			.path = path,
-		},
-		.mode      = PERF_DATA_MODE_WRITE,
+		.path = path,
+		.mode = PERF_DATA_MODE_WRITE,
 	};
 
 	session = perf_session__new(&data, false, NULL);
@@ -63,10 +61,8 @@ static int check_cpu_topology(char *path, struct perf_cpu_map *map)
 {
 	struct perf_session *session;
 	struct perf_data data = {
-		.file      = {
-			.path = path,
-		},
-		.mode      = PERF_DATA_MODE_READ,
+		.path = path,
+		.mode = PERF_DATA_MODE_READ,
 	};
 	int i;
 
-- 
2.25.3


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

* Re: [PATCH] perf test session topology: Fix data path
  2020-04-23 11:53 [PATCH] perf test session topology: Fix data path Tommi Rantala
@ 2020-04-23 12:17 ` Jiri Olsa
  2020-05-08 13:05 ` [tip: perf/core] " tip-bot2 for Tommi Rantala
  1 sibling, 0 replies; 3+ messages in thread
From: Jiri Olsa @ 2020-04-23 12:17 UTC (permalink / raw)
  To: Tommi Rantala
  Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, Ravi Bangoria,
	Mamatha Inamdar, linux-kernel

On Thu, Apr 23, 2020 at 02:53:40PM +0300, Tommi Rantala wrote:
> Commit 2d4f27999b88 ("perf data: Add global path holder") missed path
> conversion in tests/topology.c, causing the "Session topology" testcase
> to "hang" (waits forever for input from stdin) when doing "ssh $VM perf
> test".
> 
> Can be reproduced by running "cat | perf test topo", and crashed by
> replacing cat with true:
> 
>   $ true | perf test -v topo
>   40: Session topology                                      :
>   --- start ---
>   test child forked, pid 3638
>   templ file: /tmp/perf-test-QPvAch
>   incompatible file format
>   incompatible file format (rerun with -v to learn more)
>   free(): invalid pointer
>   test child interrupted
>   ---- end ----
>   Session topology: FAILED!
> 
> Fixes: 2d4f27999b88 ("perf data: Add global path holder")
> Signed-off-by: Tommi Rantala <tommi.t.rantala@nokia.com>

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

thanks,
jirka

> ---
>  tools/perf/tests/topology.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/perf/tests/topology.c b/tools/perf/tests/topology.c
> index 4a800499d7c3..22daf2bdf5fa 100644
> --- a/tools/perf/tests/topology.c
> +++ b/tools/perf/tests/topology.c
> @@ -33,10 +33,8 @@ static int session_write_header(char *path)
>  {
>  	struct perf_session *session;
>  	struct perf_data data = {
> -		.file      = {
> -			.path = path,
> -		},
> -		.mode      = PERF_DATA_MODE_WRITE,
> +		.path = path,
> +		.mode = PERF_DATA_MODE_WRITE,
>  	};
>  
>  	session = perf_session__new(&data, false, NULL);
> @@ -63,10 +61,8 @@ static int check_cpu_topology(char *path, struct perf_cpu_map *map)
>  {
>  	struct perf_session *session;
>  	struct perf_data data = {
> -		.file      = {
> -			.path = path,
> -		},
> -		.mode      = PERF_DATA_MODE_READ,
> +		.path = path,
> +		.mode = PERF_DATA_MODE_READ,
>  	};
>  	int i;
>  
> -- 
> 2.25.3
> 


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

* [tip: perf/core] perf test session topology: Fix data path
  2020-04-23 11:53 [PATCH] perf test session topology: Fix data path Tommi Rantala
  2020-04-23 12:17 ` Jiri Olsa
@ 2020-05-08 13:05 ` tip-bot2 for Tommi Rantala
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot2 for Tommi Rantala @ 2020-05-08 13:05 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Tommi Rantala, Arnaldo Carvalho de Melo, Jiri Olsa,
	Alexander Shishkin, Mamatha Inamdar, Mark Rutland, Namhyung Kim,
	Peter Zijlstra, Ravi Bangoria, x86, LKML

The following commit has been merged into the perf/core branch of tip:

Commit-ID:     dbd660e6b2884b864d2642d930a163d3bcebe4be
Gitweb:        https://git.kernel.org/tip/dbd660e6b2884b864d2642d930a163d3bcebe4be
Author:        Tommi Rantala <tommi.t.rantala@nokia.com>
AuthorDate:    Thu, 23 Apr 2020 14:53:40 +03:00
Committer:     Arnaldo Carvalho de Melo <acme@redhat.com>
CommitterDate: Thu, 23 Apr 2020 11:08:24 -03:00

perf test session topology: Fix data path

Commit 2d4f27999b88 ("perf data: Add global path holder") missed path
conversion in tests/topology.c, causing the "Session topology" testcase
to "hang" (waits forever for input from stdin) when doing "ssh $VM perf
test".

Can be reproduced by running "cat | perf test topo", and crashed by
replacing cat with true:

  $ true | perf test -v topo
  40: Session topology                                      :
  --- start ---
  test child forked, pid 3638
  templ file: /tmp/perf-test-QPvAch
  incompatible file format
  incompatible file format (rerun with -v to learn more)
  free(): invalid pointer
  test child interrupted
  ---- end ----
  Session topology: FAILED!

Committer testing:

Reproduced the above result before the patch and after it is back
working:

  # true | perf test -v topo
  41: Session topology                                      :
  --- start ---
  test child forked, pid 19374
  templ file: /tmp/perf-test-YOTEQg
  CPU 0, core 0, socket 0
  CPU 1, core 1, socket 0
  CPU 2, core 2, socket 0
  CPU 3, core 3, socket 0
  CPU 4, core 0, socket 0
  CPU 5, core 1, socket 0
  CPU 6, core 2, socket 0
  CPU 7, core 3, socket 0
  test child finished with 0
  ---- end ----
  Session topology: Ok
  #

Fixes: 2d4f27999b88 ("perf data: Add global path holder")
Signed-off-by: Tommi Rantala <tommi.t.rantala@nokia.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Link: http://lore.kernel.org/lkml/20200423115341.562782-1-tommi.t.rantala@nokia.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/tests/topology.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/tools/perf/tests/topology.c b/tools/perf/tests/topology.c
index 4a80049..22daf2b 100644
--- a/tools/perf/tests/topology.c
+++ b/tools/perf/tests/topology.c
@@ -33,10 +33,8 @@ static int session_write_header(char *path)
 {
 	struct perf_session *session;
 	struct perf_data data = {
-		.file      = {
-			.path = path,
-		},
-		.mode      = PERF_DATA_MODE_WRITE,
+		.path = path,
+		.mode = PERF_DATA_MODE_WRITE,
 	};
 
 	session = perf_session__new(&data, false, NULL);
@@ -63,10 +61,8 @@ static int check_cpu_topology(char *path, struct perf_cpu_map *map)
 {
 	struct perf_session *session;
 	struct perf_data data = {
-		.file      = {
-			.path = path,
-		},
-		.mode      = PERF_DATA_MODE_READ,
+		.path = path,
+		.mode = PERF_DATA_MODE_READ,
 	};
 	int i;
 

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

end of thread, other threads:[~2020-05-08 13:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-23 11:53 [PATCH] perf test session topology: Fix data path Tommi Rantala
2020-04-23 12:17 ` Jiri Olsa
2020-05-08 13:05 ` [tip: perf/core] " tip-bot2 for Tommi Rantala

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).