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 <[email protected]>
Cc: Leo Yan <[email protected]>
Signed-off-by: Namhyung Kim <[email protected]>
---
* 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
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
>
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
Hi Leo,
On Fri, Jun 17, 2022 at 12:45 AM Leo Yan <[email protected]> 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