* [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh
@ 2022-09-14 8:01 Adrian Hunter
2022-09-14 8:01 ` [PATCH 1/2] perf test: test_intel_pt.sh: Move helper functions for waiting Adrian Hunter
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Adrian Hunter @ 2022-09-14 8:01 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Jiri Olsa, Namhyung Kim, Ian Rogers, linux-kernel
Hi
As requested by Namhyung, move functions from test_intel_pt.sh
to tests/shell/lib/waiting.sh, and parameterize timeouts.
Adrian Hunter (2):
perf test: test_intel_pt.sh: Move helper functions for waiting
perf test: waiting.sh: Parameterize timeouts
tools/perf/tests/shell/lib/waiting.sh | 77 +++++++++++++++++++++++++++++++++
tools/perf/tests/shell/test_intel_pt.sh | 68 ++---------------------------
2 files changed, 81 insertions(+), 64 deletions(-)
create mode 100644 tools/perf/tests/shell/lib/waiting.sh
Regards
Adrian
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] perf test: test_intel_pt.sh: Move helper functions for waiting
2022-09-14 8:01 [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
@ 2022-09-14 8:01 ` Adrian Hunter
2022-09-14 8:01 ` [PATCH 2/2] perf test: waiting.sh: Parameterize timeouts Adrian Hunter
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Adrian Hunter @ 2022-09-14 8:01 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Jiri Olsa, Namhyung Kim, Ian Rogers, linux-kernel
Move helper functions for waiting to a separate file so they can be
shared.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
tools/perf/tests/shell/lib/waiting.sh | 69 +++++++++++++++++++++++++
tools/perf/tests/shell/test_intel_pt.sh | 68 ++----------------------
2 files changed, 73 insertions(+), 64 deletions(-)
create mode 100644 tools/perf/tests/shell/lib/waiting.sh
diff --git a/tools/perf/tests/shell/lib/waiting.sh b/tools/perf/tests/shell/lib/waiting.sh
new file mode 100644
index 000000000000..dbd5bd90105e
--- /dev/null
+++ b/tools/perf/tests/shell/lib/waiting.sh
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: GPL-2.0
+
+tenths=date\ +%s%1N
+
+# Wait for PID $1 to have $2 number of threads started
+wait_for_threads()
+{
+ start_time=$($tenths)
+ while [ -e "/proc/$1/task" ] ; do
+ th_cnt=$(find "/proc/$1/task" -mindepth 1 -maxdepth 1 -printf x | wc -c)
+ if [ "${th_cnt}" -ge "$2" ] ; then
+ return 0
+ fi
+ # Wait at most 5 seconds
+ if [ $(($($tenths) - start_time)) -ge 50 ] ; then
+ echo "PID $1 does not have $2 threads"
+ return 1
+ fi
+ done
+ return 1
+}
+
+# Wait for perf record -vvv 2>$2 with PID $1 to start by looking at file $2
+# It depends on capturing perf record debug message "perf record has started"
+wait_for_perf_to_start()
+{
+ echo "Waiting for \"perf record has started\" message"
+ start_time=$($tenths)
+ while [ -e "/proc/$1" ] ; do
+ if grep -q "perf record has started" "$2" ; then
+ echo OK
+ break
+ fi
+ # Wait at most 5 seconds
+ if [ $(($($tenths) - start_time)) -ge 50 ] ; then
+ echo "perf recording did not start"
+ return 1
+ fi
+ done
+ return 0
+}
+
+# Wait for process PID %1 to exit
+wait_for_process_to_exit()
+{
+ start_time=$($tenths)
+ while [ -e "/proc/$1" ] ; do
+ # Wait at most 5 seconds
+ if [ $(($($tenths) - start_time)) -ge 50 ] ; then
+ echo "PID $1 did not exit as expected"
+ return 1
+ fi
+ done
+ return 0
+}
+
+# Check if PID $1 is still running after 0.3 seconds
+is_running()
+{
+ start_time=$($tenths)
+ while [ -e "/proc/$1" ] ; do
+ # Check for at least 0.3s
+ if [ $(($($tenths) - start_time)) -gt 3 ] ; then
+ return 0
+ fi
+ done
+ echo "PID $1 exited prematurely"
+ return 1
+}
diff --git a/tools/perf/tests/shell/test_intel_pt.sh b/tools/perf/tests/shell/test_intel_pt.sh
index 051d088c1b74..efaad9566c34 100755
--- a/tools/perf/tests/shell/test_intel_pt.sh
+++ b/tools/perf/tests/shell/test_intel_pt.sh
@@ -4,11 +4,12 @@
set -e
-tenths=date\ +%s%1N
-
# Skip if no Intel PT
perf list | grep -q 'intel_pt//' || exit 2
+shelldir=$(dirname "$0")
+. "${shelldir}"/lib/waiting.sh
+
skip_cnt=0
ok_cnt=0
err_cnt=0
@@ -112,67 +113,6 @@ can_kernel()
return 0
}
-wait_for_threads()
-{
- start_time=$($tenths)
- while [ -e "/proc/$1/task" ] ; do
- th_cnt=$(find "/proc/$1/task" -mindepth 1 -maxdepth 1 -printf x | wc -c)
- if [ "${th_cnt}" -ge "$2" ] ; then
- return 0
- fi
- # Wait at most 5 seconds
- if [ $(($($tenths) - start_time)) -ge 50 ] ; then
- echo "PID $1 does not have $2 threads"
- return 1
- fi
- done
- return 1
-}
-
-wait_for_perf_to_start()
-{
- echo "Waiting for \"perf record has started\" message"
- start_time=$($tenths)
- while [ -e "/proc/$1" ] ; do
- if grep -q "perf record has started" "${errfile}" ; then
- echo OK
- break
- fi
- # Wait at most 5 seconds
- if [ $(($($tenths) - start_time)) -ge 50 ] ; then
- echo "perf recording did not start"
- return 1
- fi
- done
- return 0
-}
-
-wait_for_process_to_exit()
-{
- start_time=$($tenths)
- while [ -e "/proc/$1" ] ; do
- # Wait at most 5 seconds
- if [ $(($($tenths) - start_time)) -ge 50 ] ; then
- echo "PID $1 did not exit as expected"
- return 1
- fi
- done
- return 0
-}
-
-is_running()
-{
- start_time=$($tenths)
- while [ -e "/proc/$1" ] ; do
- # Check for at least 0.3s
- if [ $(($($tenths) - start_time)) -gt 3 ] ; then
- return 0
- fi
- done
- echo "PID $1 exited prematurely"
- return 1
-}
-
test_per_thread()
{
k="$1"
@@ -298,7 +238,7 @@ test_per_thread()
perf record -B -N --no-bpf-event -o "${perfdatafile}" -e intel_pt//u"${k}" -vvv --per-thread -p "${w1},${w2}" 2>"${errfile}" >"${outfile}" &
ppid=$!
echo "perf PID is $ppid"
- wait_for_perf_to_start ${ppid} || return 1
+ wait_for_perf_to_start ${ppid} "${errfile}" || return 1
kill ${w1}
wait_for_process_to_exit ${w1} || return 1
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] perf test: waiting.sh: Parameterize timeouts
2022-09-14 8:01 [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
2022-09-14 8:01 ` [PATCH 1/2] perf test: test_intel_pt.sh: Move helper functions for waiting Adrian Hunter
@ 2022-09-14 8:01 ` Adrian Hunter
2022-09-14 8:09 ` [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
2022-09-14 16:41 ` Namhyung Kim
3 siblings, 0 replies; 6+ messages in thread
From: Adrian Hunter @ 2022-09-14 8:01 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Jiri Olsa, Namhyung Kim, Ian Rogers, linux-kernel
Let helper functions accept a parameter to specify time out values in
tenths of a second.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
tools/perf/tests/shell/lib/waiting.sh | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/tools/perf/tests/shell/lib/waiting.sh b/tools/perf/tests/shell/lib/waiting.sh
index dbd5bd90105e..e7a39134a68e 100644
--- a/tools/perf/tests/shell/lib/waiting.sh
+++ b/tools/perf/tests/shell/lib/waiting.sh
@@ -3,16 +3,18 @@
tenths=date\ +%s%1N
# Wait for PID $1 to have $2 number of threads started
+# Time out after $3 tenths of a second or 5 seconds if $3 is ""
wait_for_threads()
{
+ tm_out=$3 ; [ -n "${tm_out}" ] || tm_out=50
start_time=$($tenths)
while [ -e "/proc/$1/task" ] ; do
th_cnt=$(find "/proc/$1/task" -mindepth 1 -maxdepth 1 -printf x | wc -c)
if [ "${th_cnt}" -ge "$2" ] ; then
return 0
fi
- # Wait at most 5 seconds
- if [ $(($($tenths) - start_time)) -ge 50 ] ; then
+ # Wait at most tm_out tenths of a second
+ if [ $(($($tenths) - start_time)) -ge $tm_out ] ; then
echo "PID $1 does not have $2 threads"
return 1
fi
@@ -22,8 +24,10 @@ wait_for_threads()
# Wait for perf record -vvv 2>$2 with PID $1 to start by looking at file $2
# It depends on capturing perf record debug message "perf record has started"
+# Time out after $3 tenths of a second or 5 seconds if $3 is ""
wait_for_perf_to_start()
{
+ tm_out=$3 ; [ -n "${tm_out}" ] || tm_out=50
echo "Waiting for \"perf record has started\" message"
start_time=$($tenths)
while [ -e "/proc/$1" ] ; do
@@ -31,8 +35,8 @@ wait_for_perf_to_start()
echo OK
break
fi
- # Wait at most 5 seconds
- if [ $(($($tenths) - start_time)) -ge 50 ] ; then
+ # Wait at most tm_out tenths of a second
+ if [ $(($($tenths) - start_time)) -ge $tm_out ] ; then
echo "perf recording did not start"
return 1
fi
@@ -41,12 +45,14 @@ wait_for_perf_to_start()
}
# Wait for process PID %1 to exit
+# Time out after $2 tenths of a second or 5 seconds if $2 is ""
wait_for_process_to_exit()
{
+ tm_out=$2 ; [ -n "${tm_out}" ] || tm_out=50
start_time=$($tenths)
while [ -e "/proc/$1" ] ; do
- # Wait at most 5 seconds
- if [ $(($($tenths) - start_time)) -ge 50 ] ; then
+ # Wait at most tm_out tenths of a second
+ if [ $(($($tenths) - start_time)) -ge $tm_out ] ; then
echo "PID $1 did not exit as expected"
return 1
fi
@@ -54,13 +60,15 @@ wait_for_process_to_exit()
return 0
}
-# Check if PID $1 is still running after 0.3 seconds
+# Check if PID $1 is still running after $2 tenths of a second
+# or 0.3 seconds if $2 is ""
is_running()
{
+ tm_out=$2 ; [ -n "${tm_out}" ] || tm_out=3
start_time=$($tenths)
while [ -e "/proc/$1" ] ; do
- # Check for at least 0.3s
- if [ $(($($tenths) - start_time)) -gt 3 ] ; then
+ # Check for at least tm_out tenths of a second
+ if [ $(($($tenths) - start_time)) -gt $tm_out ] ; then
return 0
fi
done
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh
2022-09-14 8:01 [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
2022-09-14 8:01 ` [PATCH 1/2] perf test: test_intel_pt.sh: Move helper functions for waiting Adrian Hunter
2022-09-14 8:01 ` [PATCH 2/2] perf test: waiting.sh: Parameterize timeouts Adrian Hunter
@ 2022-09-14 8:09 ` Adrian Hunter
2022-09-14 16:41 ` Namhyung Kim
3 siblings, 0 replies; 6+ messages in thread
From: Adrian Hunter @ 2022-09-14 8:09 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Jiri Olsa, Namhyung Kim, Ian Rogers, linux-kernel,
linux-perf-users
On 14/09/22 11:01, Adrian Hunter wrote:
> Hi
>
> As requested by Namhyung, move functions from test_intel_pt.sh
> to tests/shell/lib/waiting.sh, and parameterize timeouts.
This is on top of series "perf test: test_intel_pt.sh: Add per-thread test"
https://lore.kernel.org/lkml/20220912083412.7058-1-adrian.hunter@intel.com/
For Namhyung's comments refer also:
https://lore.kernel.org/lkml/CAM9d7ci3JKNaLDMo6patFHZbLSm-r1UmOmZtrwCX8Gu0nsPMBA@mail.gmail.com/
https://lore.kernel.org/lkml/CAM9d7ciRCnpNjOfoEbO27pNk28ddjg1vVdgrZtvWQ-mbD7jg0w@mail.gmail.com/
>
>
> Adrian Hunter (2):
> perf test: test_intel_pt.sh: Move helper functions for waiting
> perf test: waiting.sh: Parameterize timeouts
>
> tools/perf/tests/shell/lib/waiting.sh | 77 +++++++++++++++++++++++++++++++++
> tools/perf/tests/shell/test_intel_pt.sh | 68 ++---------------------------
> 2 files changed, 81 insertions(+), 64 deletions(-)
> create mode 100644 tools/perf/tests/shell/lib/waiting.sh
>
>
> Regards
> Adrian
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh
2022-09-14 8:01 [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
` (2 preceding siblings ...)
2022-09-14 8:09 ` [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
@ 2022-09-14 16:41 ` Namhyung Kim
2022-09-26 19:36 ` Arnaldo Carvalho de Melo
3 siblings, 1 reply; 6+ messages in thread
From: Namhyung Kim @ 2022-09-14 16:41 UTC (permalink / raw)
To: Adrian Hunter
Cc: Arnaldo Carvalho de Melo, Jiri Olsa, Ian Rogers, linux-kernel
On Wed, Sep 14, 2022 at 1:02 AM Adrian Hunter <adrian.hunter@intel.com> wrote:
>
> Hi
>
> As requested by Namhyung, move functions from test_intel_pt.sh
> to tests/shell/lib/waiting.sh, and parameterize timeouts.
>
>
> Adrian Hunter (2):
> perf test: test_intel_pt.sh: Move helper functions for waiting
> perf test: waiting.sh: Parameterize timeouts
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks,
Namhyung
>
> tools/perf/tests/shell/lib/waiting.sh | 77 +++++++++++++++++++++++++++++++++
> tools/perf/tests/shell/test_intel_pt.sh | 68 ++---------------------------
> 2 files changed, 81 insertions(+), 64 deletions(-)
> create mode 100644 tools/perf/tests/shell/lib/waiting.sh
>
>
> Regards
> Adrian
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh
2022-09-14 16:41 ` Namhyung Kim
@ 2022-09-26 19:36 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2022-09-26 19:36 UTC (permalink / raw)
To: Namhyung Kim; +Cc: Adrian Hunter, Jiri Olsa, Ian Rogers, linux-kernel
Em Wed, Sep 14, 2022 at 09:41:09AM -0700, Namhyung Kim escreveu:
> On Wed, Sep 14, 2022 at 1:02 AM Adrian Hunter <adrian.hunter@intel.com> wrote:
> >
> > Hi
> >
> > As requested by Namhyung, move functions from test_intel_pt.sh
> > to tests/shell/lib/waiting.sh, and parameterize timeouts.
> >
> >
> > Adrian Hunter (2):
> > perf test: test_intel_pt.sh: Move helper functions for waiting
> > perf test: waiting.sh: Parameterize timeouts
>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks, applied.
- Arnaldo
> Thanks,
> Namhyung
>
>
> >
> > tools/perf/tests/shell/lib/waiting.sh | 77 +++++++++++++++++++++++++++++++++
> > tools/perf/tests/shell/test_intel_pt.sh | 68 ++---------------------------
> > 2 files changed, 81 insertions(+), 64 deletions(-)
> > create mode 100644 tools/perf/tests/shell/lib/waiting.sh
> >
> >
> > Regards
> > Adrian
--
- Arnaldo
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-09-26 19:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-14 8:01 [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
2022-09-14 8:01 ` [PATCH 1/2] perf test: test_intel_pt.sh: Move helper functions for waiting Adrian Hunter
2022-09-14 8:01 ` [PATCH 2/2] perf test: waiting.sh: Parameterize timeouts Adrian Hunter
2022-09-14 8:09 ` [PATCH 0/2] perf test: Add tests/shell/lib/waiting.sh Adrian Hunter
2022-09-14 16:41 ` Namhyung Kim
2022-09-26 19:36 ` 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.