linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] perf test: Add ARM SPE system wide test
@ 2022-06-16 23:05 Namhyung Kim
  2022-06-17  7:38 ` Leo Yan
  0 siblings, 1 reply; 4+ messages in thread
From: Namhyung Kim @ 2022-06-16 23:05 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Jiri Olsa
  Cc: Ingo Molnar, Peter Zijlstra, LKML, Ian Rogers, linux-perf-users,
	John Garry, Will Deacon, James Clark, Mike Leach, German Gomez,
	Leo Yan

In the past it had a problem not setting the pid/tid on the sample
correctly when system-wide mode is used.  Although it's fixed now it'd
be nice if we have a test case for it.

Cc: German Gomez <german.gomez@arm.com>
Cc: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
* skip if system-wide record was failed

 tools/perf/tests/shell/test_arm_spe.sh | 28 +++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/tools/perf/tests/shell/test_arm_spe.sh b/tools/perf/tests/shell/test_arm_spe.sh
index e59044edc406..962841a51f27 100755
--- a/tools/perf/tests/shell/test_arm_spe.sh
+++ b/tools/perf/tests/shell/test_arm_spe.sh
@@ -23,17 +23,20 @@ glb_err=0
 cleanup_files()
 {
 	rm -f ${perfdata}
+	rm -f ${perfdata}.old
 	exit $glb_err
 }
 
 trap cleanup_files exit term int
 
 arm_spe_report() {
-	if [ $2 != 0 ]; then
+	if [ $2 = 0 ]; then
+		echo "$1: PASS"
+	elif [ $2 = 2 ]; then
+		echo "$1: SKIPPED"
+	else
 		echo "$1: FAIL"
 		glb_err=$2
-	else
-		echo "$1: PASS"
 	fi
 }
 
@@ -85,5 +88,24 @@ arm_spe_snapshot_test() {
 	arm_spe_report "SPE snapshot testing" $err
 }
 
+arm_spe_system_wide_test() {
+	echo "Recording trace with system-wide mode $perfdata"
+	perf record -o ${perfdata} -e arm_spe// -a \
+		-- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1
+
+	if [ $? != 0 ]; then
+		arm_spe_report "SPE system-wide testing" 2
+		return
+	fi
+
+	perf_script_samples dd &&
+	perf_report_samples dd
+
+	err=$?
+	arm_spe_report "SPE system-wide testing" $err
+}
+
 arm_spe_snapshot_test
+arm_spe_system_wide_test
+
 exit $glb_err
-- 
2.36.1.476.g0c4daa206d-goog


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

* Re: [PATCH v2] perf test: Add ARM SPE system wide test
  2022-06-16 23:05 [PATCH v2] perf test: Add ARM SPE system wide test Namhyung Kim
@ 2022-06-17  7:38 ` Leo Yan
  2022-06-17  7:45   ` Leo Yan
  0 siblings, 1 reply; 4+ messages in thread
From: Leo Yan @ 2022-06-17  7:38 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Jiri Olsa, Ingo Molnar, Peter Zijlstra,
	LKML, Ian Rogers, linux-perf-users, John Garry, Will Deacon,
	James Clark, Mike Leach, German Gomez

Hi Namhyung,

On Thu, Jun 16, 2022 at 04:05:46PM -0700, Namhyung Kim wrote:

[...]

> +arm_spe_system_wide_test() {
> +	echo "Recording trace with system-wide mode $perfdata"
> +	perf record -o ${perfdata} -e arm_spe// -a \
> +		-- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1
> +
> +	if [ $? != 0 ]; then
> +		arm_spe_report "SPE system-wide testing" 2
> +		return
> +	fi

I am awared the root permission issue after I saw German's suggestion.

If the snapshot test is passed, no matter the system wide test is passed
or not, we will always return 0 for 'passed' result.  But we might miss
to capture the system-wide testing failure.

How about use 'dummy' event to verіfy the root permission?
(actually I referred to intel-pt test):

        perf record -o ${tmpfile} -B -N --no-bpf-event -e dummy:u -a true 2>&1 >/dev/null
        if [ $? != 0 ]; then
        	arm_spe_report "SPE system-wide testing" 2
        	return
        fi

        perf record -o ${perfdata} -e arm_spe// -a \
                  -- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1

Thanks,
Leo

> +	perf_script_samples dd &&
> +	perf_report_samples dd
> +
> +	err=$?
> +	arm_spe_report "SPE system-wide testing" $err
> +}
> +
>  arm_spe_snapshot_test
> +arm_spe_system_wide_test
> +
>  exit $glb_err
> -- 
> 2.36.1.476.g0c4daa206d-goog
> 

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

* Re: [PATCH v2] perf test: Add ARM SPE system wide test
  2022-06-17  7:38 ` Leo Yan
@ 2022-06-17  7:45   ` Leo Yan
  2022-06-24  6:22     ` Namhyung Kim
  0 siblings, 1 reply; 4+ messages in thread
From: Leo Yan @ 2022-06-17  7:45 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Jiri Olsa, Ingo Molnar, Peter Zijlstra,
	LKML, Ian Rogers, linux-perf-users, John Garry, Will Deacon,
	James Clark, Mike Leach, German Gomez

On Fri, Jun 17, 2022 at 03:38:40PM +0800, Leo Yan wrote:
> Hi Namhyung,
> 
> On Thu, Jun 16, 2022 at 04:05:46PM -0700, Namhyung Kim wrote:
> 
> [...]
> 
> > +arm_spe_system_wide_test() {
> > +	echo "Recording trace with system-wide mode $perfdata"
> > +	perf record -o ${perfdata} -e arm_spe// -a \
> > +		-- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1
> > +
> > +	if [ $? != 0 ]; then
> > +		arm_spe_report "SPE system-wide testing" 2
> > +		return
> > +	fi
> 
> I am awared the root permission issue after I saw German's suggestion.
> 
> If the snapshot test is passed, no matter the system wide test is passed
> or not, we will always return 0 for 'passed' result.  But we might miss
> to capture the system-wide testing failure.
> 
> How about use 'dummy' event to verіfy the root permission?
> (actually I referred to intel-pt test):
> 
>         perf record -o ${tmpfile} -B -N --no-bpf-event -e dummy:u -a true 2>&1 >/dev/null

Sorry for typo, s/tmpfile/perfdata/

>         if [ $? != 0 ]; then
>         	arm_spe_report "SPE system-wide testing" 2
>         	return
>         fi
> 
>         perf record -o ${perfdata} -e arm_spe// -a \
>                   -- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1

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

* Re: [PATCH v2] perf test: Add ARM SPE system wide test
  2022-06-17  7:45   ` Leo Yan
@ 2022-06-24  6:22     ` Namhyung Kim
  0 siblings, 0 replies; 4+ messages in thread
From: Namhyung Kim @ 2022-06-24  6:22 UTC (permalink / raw)
  To: Leo Yan
  Cc: Arnaldo Carvalho de Melo, Jiri Olsa, Ingo Molnar, Peter Zijlstra,
	LKML, Ian Rogers, linux-perf-users, John Garry, Will Deacon,
	James Clark, Mike Leach, German Gomez

Hi Leo,

On Fri, Jun 17, 2022 at 12:45 AM Leo Yan <leo.yan@linaro.org> wrote:
>
> On Fri, Jun 17, 2022 at 03:38:40PM +0800, Leo Yan wrote:
> > Hi Namhyung,
> >
> > On Thu, Jun 16, 2022 at 04:05:46PM -0700, Namhyung Kim wrote:
> >
> > [...]
> >
> > > +arm_spe_system_wide_test() {
> > > +   echo "Recording trace with system-wide mode $perfdata"
> > > +   perf record -o ${perfdata} -e arm_spe// -a \
> > > +           -- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1
> > > +
> > > +   if [ $? != 0 ]; then
> > > +           arm_spe_report "SPE system-wide testing" 2
> > > +           return
> > > +   fi
> >
> > I am awared the root permission issue after I saw German's suggestion.
> >
> > If the snapshot test is passed, no matter the system wide test is passed
> > or not, we will always return 0 for 'passed' result.  But we might miss
> > to capture the system-wide testing failure.
> >
> > How about use 'dummy' event to verіfy the root permission?
> > (actually I referred to intel-pt test):
> >
> >         perf record -o ${perfdata} -B -N --no-bpf-event -e dummy:u -a true 2>&1 >/dev/null
> >         if [ $? != 0 ]; then
> >               arm_spe_report "SPE system-wide testing" 2
> >               return
> >         fi
> >
> >         perf record -o ${perfdata} -e arm_spe// -a \
> >                   -- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1

Ok, will add the change.

Thanks,
Namhyung

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

end of thread, other threads:[~2022-06-24  6:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-16 23:05 [PATCH v2] perf test: Add ARM SPE system wide test Namhyung Kim
2022-06-17  7:38 ` Leo Yan
2022-06-17  7:45   ` Leo Yan
2022-06-24  6:22     ` Namhyung Kim

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).