All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf test: Fix skipping branch stack sampling test
@ 2022-10-28 12:19 James Clark
  2022-10-28 12:22 ` James Clark
  0 siblings, 1 reply; 4+ messages in thread
From: James Clark @ 2022-10-28 12:19 UTC (permalink / raw)
  To: linux-perf-users, acme, atrajeev
  Cc: linux-kernel, Anshuman.Khandual, James Clark, Peter Zijlstra,
	Ingo Molnar, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Namhyung Kim, Kajol Jain

Commit f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test
to include sanity check for branch filter") added a skip if certain
branch options aren't available. But the change added both -b
(--branch-any) and --branch-filter options at the same time, which will
always result in a failure on any platform because the arguments can't
be used together.

Fix this by removing -b (--branch-any) and leaving --branch-filter which
already specifies 'any'. Also add warning messages to the test and perf
tool.

Output on x86 before this fix:

   $ sudo ./perf test branch
   108: Check branch stack sampling         : Skip

After:

   $ sudo ./perf test branch
   108: Check branch stack sampling         : Ok

Fixes: f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test to include sanity check for branch filter")
Signed-off-by: James Clark <james.clark@arm.com>
---
 tools/perf/tests/shell/test_brstack.sh | 5 ++++-
 tools/perf/util/parse-branch-options.c | 4 +++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/perf/tests/shell/test_brstack.sh b/tools/perf/tests/shell/test_brstack.sh
index ec801cffae6b..d7ff5c4b4da4 100755
--- a/tools/perf/tests/shell/test_brstack.sh
+++ b/tools/perf/tests/shell/test_brstack.sh
@@ -13,7 +13,10 @@ fi
 
 # skip the test if the hardware doesn't support branch stack sampling
 # and if the architecture doesn't support filter types: any,save_type,u
-perf record -b -o- -B --branch-filter any,save_type,u true > /dev/null 2>&1 || exit 2
+if ! perf record -o- --no-buildid --branch-filter any,save_type,u -- true > /dev/null 2>&1 ; then
+	echo "skip: system doesn't support filter types: any,save_type,u"
+	exit 2
+fi
 
 TMPDIR=$(mktemp -d /tmp/__perf_test.program.XXXXX)
 
diff --git a/tools/perf/util/parse-branch-options.c b/tools/perf/util/parse-branch-options.c
index 00588b9db474..31faf2bb49ff 100644
--- a/tools/perf/util/parse-branch-options.c
+++ b/tools/perf/util/parse-branch-options.c
@@ -102,8 +102,10 @@ parse_branch_stack(const struct option *opt, const char *str, int unset)
 	/*
 	 * cannot set it twice, -b + --branch-filter for instance
 	 */
-	if (*mode)
+	if (*mode) {
+		pr_err("Error: Can't use --branch-any (-b) with --branch-filter (-j).\n");
 		return -1;
+	}
 
 	return parse_branch_str(str, mode);
 }
-- 
2.25.1


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

* Re: [PATCH] perf test: Fix skipping branch stack sampling test
  2022-10-28 12:19 [PATCH] perf test: Fix skipping branch stack sampling test James Clark
@ 2022-10-28 12:22 ` James Clark
  2022-11-02  6:51   ` Athira Rajeev
  0 siblings, 1 reply; 4+ messages in thread
From: James Clark @ 2022-10-28 12:22 UTC (permalink / raw)
  To: atrajeev
  Cc: linux-kernel, Anshuman.Khandual, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Kajol Jain, linux-perf-users, acme



On 28/10/2022 13:19, James Clark wrote:
> Commit f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test
> to include sanity check for branch filter") added a skip if certain
> branch options aren't available. But the change added both -b
> (--branch-any) and --branch-filter options at the same time, which will
> always result in a failure on any platform because the arguments can't
> be used together.
> 
> Fix this by removing -b (--branch-any) and leaving --branch-filter which
> already specifies 'any'. Also add warning messages to the test and perf
> tool.
> 

Hi Athira,

Are you able to check if this still skips for you on PowerPC with this
new change?

Thanks
James

> Output on x86 before this fix:
> 
>    $ sudo ./perf test branch
>    108: Check branch stack sampling         : Skip
> 
> After:
> 
>    $ sudo ./perf test branch
>    108: Check branch stack sampling         : Ok
> 
> Fixes: f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test to include sanity check for branch filter")
> Signed-off-by: James Clark <james.clark@arm.com>
> ---
>  tools/perf/tests/shell/test_brstack.sh | 5 ++++-
>  tools/perf/util/parse-branch-options.c | 4 +++-
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/tests/shell/test_brstack.sh b/tools/perf/tests/shell/test_brstack.sh
> index ec801cffae6b..d7ff5c4b4da4 100755
> --- a/tools/perf/tests/shell/test_brstack.sh
> +++ b/tools/perf/tests/shell/test_brstack.sh
> @@ -13,7 +13,10 @@ fi
>  
>  # skip the test if the hardware doesn't support branch stack sampling
>  # and if the architecture doesn't support filter types: any,save_type,u
> -perf record -b -o- -B --branch-filter any,save_type,u true > /dev/null 2>&1 || exit 2
> +if ! perf record -o- --no-buildid --branch-filter any,save_type,u -- true > /dev/null 2>&1 ; then
> +	echo "skip: system doesn't support filter types: any,save_type,u"
> +	exit 2
> +fi
>  
>  TMPDIR=$(mktemp -d /tmp/__perf_test.program.XXXXX)
>  
> diff --git a/tools/perf/util/parse-branch-options.c b/tools/perf/util/parse-branch-options.c
> index 00588b9db474..31faf2bb49ff 100644
> --- a/tools/perf/util/parse-branch-options.c
> +++ b/tools/perf/util/parse-branch-options.c
> @@ -102,8 +102,10 @@ parse_branch_stack(const struct option *opt, const char *str, int unset)
>  	/*
>  	 * cannot set it twice, -b + --branch-filter for instance
>  	 */
> -	if (*mode)
> +	if (*mode) {
> +		pr_err("Error: Can't use --branch-any (-b) with --branch-filter (-j).\n");
>  		return -1;
> +	}
>  
>  	return parse_branch_str(str, mode);
>  }

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

* Re: [PATCH] perf test: Fix skipping branch stack sampling test
  2022-10-28 12:22 ` James Clark
@ 2022-11-02  6:51   ` Athira Rajeev
  2022-11-08 21:00     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 4+ messages in thread
From: Athira Rajeev @ 2022-11-02  6:51 UTC (permalink / raw)
  To: James Clark
  Cc: LKML, Anshuman.Khandual, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Kajol Jain, linux-perf-users, acme



> On 28-Oct-2022, at 5:52 PM, James Clark <james.clark@arm.com> wrote:
> 
> 
> 
> On 28/10/2022 13:19, James Clark wrote:
>> Commit f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test
>> to include sanity check for branch filter") added a skip if certain
>> branch options aren't available. But the change added both -b
>> (--branch-any) and --branch-filter options at the same time, which will
>> always result in a failure on any platform because the arguments can't
>> be used together.
>> 
>> Fix this by removing -b (--branch-any) and leaving --branch-filter which
>> already specifies 'any'. Also add warning messages to the test and perf
>> tool.
>> 
> 
> Hi Athira,
> 
> Are you able to check if this still skips for you on PowerPC with this
> new change?
> 

Hi James,

Sorry for the late response. I was out on vacation couple of days.

I tested with the new change and verified it skips on powerpc.

Tested-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>

Thanks
Athira
> Thanks
> James
> 
>> Output on x86 before this fix:
>> 
>>   $ sudo ./perf test branch
>>   108: Check branch stack sampling         : Skip
>> 
>> After:
>> 
>>   $ sudo ./perf test branch
>>   108: Check branch stack sampling         : Ok
>> 
>> Fixes: f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test to include sanity check for branch filter")
>> Signed-off-by: James Clark <james.clark@arm.com>
>> ---
>> tools/perf/tests/shell/test_brstack.sh | 5 ++++-
>> tools/perf/util/parse-branch-options.c | 4 +++-
>> 2 files changed, 7 insertions(+), 2 deletions(-)
>> 
>> diff --git a/tools/perf/tests/shell/test_brstack.sh b/tools/perf/tests/shell/test_brstack.sh
>> index ec801cffae6b..d7ff5c4b4da4 100755
>> --- a/tools/perf/tests/shell/test_brstack.sh
>> +++ b/tools/perf/tests/shell/test_brstack.sh
>> @@ -13,7 +13,10 @@ fi
>> 
>> # skip the test if the hardware doesn't support branch stack sampling
>> # and if the architecture doesn't support filter types: any,save_type,u
>> -perf record -b -o- -B --branch-filter any,save_type,u true > /dev/null 2>&1 || exit 2
>> +if ! perf record -o- --no-buildid --branch-filter any,save_type,u -- true > /dev/null 2>&1 ; then
>> +	echo "skip: system doesn't support filter types: any,save_type,u"
>> +	exit 2
>> +fi
>> 
>> TMPDIR=$(mktemp -d /tmp/__perf_test.program.XXXXX)
>> 
>> diff --git a/tools/perf/util/parse-branch-options.c b/tools/perf/util/parse-branch-options.c
>> index 00588b9db474..31faf2bb49ff 100644
>> --- a/tools/perf/util/parse-branch-options.c
>> +++ b/tools/perf/util/parse-branch-options.c
>> @@ -102,8 +102,10 @@ parse_branch_stack(const struct option *opt, const char *str, int unset)
>> 	/*
>> 	 * cannot set it twice, -b + --branch-filter for instance
>> 	 */
>> -	if (*mode)
>> +	if (*mode) {
>> +		pr_err("Error: Can't use --branch-any (-b) with --branch-filter (-j).\n");
>> 		return -1;
>> +	}
>> 
>> 	return parse_branch_str(str, mode);
>> }


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

* Re: [PATCH] perf test: Fix skipping branch stack sampling test
  2022-11-02  6:51   ` Athira Rajeev
@ 2022-11-08 21:00     ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2022-11-08 21:00 UTC (permalink / raw)
  To: Athira Rajeev
  Cc: James Clark, LKML, Anshuman.Khandual, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Kajol Jain, linux-perf-users

Em Wed, Nov 02, 2022 at 12:21:11PM +0530, Athira Rajeev escreveu:
> 
> 
> > On 28-Oct-2022, at 5:52 PM, James Clark <james.clark@arm.com> wrote:
> > 
> > 
> > 
> > On 28/10/2022 13:19, James Clark wrote:
> >> Commit f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test
> >> to include sanity check for branch filter") added a skip if certain
> >> branch options aren't available. But the change added both -b
> >> (--branch-any) and --branch-filter options at the same time, which will
> >> always result in a failure on any platform because the arguments can't
> >> be used together.
> >> 
> >> Fix this by removing -b (--branch-any) and leaving --branch-filter which
> >> already specifies 'any'. Also add warning messages to the test and perf
> >> tool.
> >> 
> > 
> > Hi Athira,
> > 
> > Are you able to check if this still skips for you on PowerPC with this
> > new change?
> > 
> 
> Hi James,
> 
> Sorry for the late response. I was out on vacation couple of days.
> 
> I tested with the new change and verified it skips on powerpc.
> 
> Tested-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>

Thanks, applied.

- Arnaldo

 
> Thanks
> Athira
> > Thanks
> > James
> > 
> >> Output on x86 before this fix:
> >> 
> >>   $ sudo ./perf test branch
> >>   108: Check branch stack sampling         : Skip
> >> 
> >> After:
> >> 
> >>   $ sudo ./perf test branch
> >>   108: Check branch stack sampling         : Ok
> >> 
> >> Fixes: f4a2aade6809 ("perf tests powerpc: Fix branch stack sampling test to include sanity check for branch filter")
> >> Signed-off-by: James Clark <james.clark@arm.com>
> >> ---
> >> tools/perf/tests/shell/test_brstack.sh | 5 ++++-
> >> tools/perf/util/parse-branch-options.c | 4 +++-
> >> 2 files changed, 7 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/tools/perf/tests/shell/test_brstack.sh b/tools/perf/tests/shell/test_brstack.sh
> >> index ec801cffae6b..d7ff5c4b4da4 100755
> >> --- a/tools/perf/tests/shell/test_brstack.sh
> >> +++ b/tools/perf/tests/shell/test_brstack.sh
> >> @@ -13,7 +13,10 @@ fi
> >> 
> >> # skip the test if the hardware doesn't support branch stack sampling
> >> # and if the architecture doesn't support filter types: any,save_type,u
> >> -perf record -b -o- -B --branch-filter any,save_type,u true > /dev/null 2>&1 || exit 2
> >> +if ! perf record -o- --no-buildid --branch-filter any,save_type,u -- true > /dev/null 2>&1 ; then
> >> +	echo "skip: system doesn't support filter types: any,save_type,u"
> >> +	exit 2
> >> +fi
> >> 
> >> TMPDIR=$(mktemp -d /tmp/__perf_test.program.XXXXX)
> >> 
> >> diff --git a/tools/perf/util/parse-branch-options.c b/tools/perf/util/parse-branch-options.c
> >> index 00588b9db474..31faf2bb49ff 100644
> >> --- a/tools/perf/util/parse-branch-options.c
> >> +++ b/tools/perf/util/parse-branch-options.c
> >> @@ -102,8 +102,10 @@ parse_branch_stack(const struct option *opt, const char *str, int unset)
> >> 	/*
> >> 	 * cannot set it twice, -b + --branch-filter for instance
> >> 	 */
> >> -	if (*mode)
> >> +	if (*mode) {
> >> +		pr_err("Error: Can't use --branch-any (-b) with --branch-filter (-j).\n");
> >> 		return -1;
> >> +	}
> >> 
> >> 	return parse_branch_str(str, mode);
> >> }

-- 

- Arnaldo

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

end of thread, other threads:[~2022-11-08 21:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-28 12:19 [PATCH] perf test: Fix skipping branch stack sampling test James Clark
2022-10-28 12:22 ` James Clark
2022-11-02  6:51   ` Athira Rajeev
2022-11-08 21:00     ` 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.