Messages in this thread | | | Date | Mon, 14 Nov 2022 11:11:54 +0000 | Subject | Re: [PATCH 04/12] perf test: Replace record test workload with thloop | From | James Clark <> |
| |
On 10/11/2022 18:19, Namhyung Kim wrote: > So that it can get rid of requirements for a compiler. > > $ sudo ./perf test -v 92 > 92: perf record tests : > --- start --- > test child forked, pid 740204 > Basic --per-thread mode test > Basic --per-thread mode test [Success] > Register capture test > Register capture test [Success] > Basic --system-wide mode test > Basic --system-wide mode test [Success] > Basic target workload test > Basic target workload test [Success] > test child finished with 0 > ---- end ---- > perf record tests: Ok > > Signed-off-by: Namhyung Kim <namhyung@kernel.org> > --- > tools/perf/tests/shell/record.sh | 59 ++------------------------------ > 1 file changed, 3 insertions(+), 56 deletions(-)
Tested-by: James Clark <james.clark@arm.com>
> > diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh > index e93b3a8871fe..4dff89e3a3fd 100755 > --- a/tools/perf/tests/shell/record.sh > +++ b/tools/perf/tests/shell/record.sh > @@ -9,17 +9,13 @@ shelldir=$(dirname "$0") > > err=0 > perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) > -testprog=$(mktemp /tmp/__perf_test.prog.XXXXXX) > +testprog="perf test -w thloop" > testsym="test_loop" > > cleanup() { > rm -rf "${perfdata}" > rm -rf "${perfdata}".old > > - if [ "${testprog}" != "true" ]; then > - rm -f "${testprog}" > - fi > - > trap - EXIT TERM INT > } > > @@ -29,53 +25,6 @@ trap_cleanup() { > } > trap trap_cleanup EXIT TERM INT > > -build_test_program() { > - if ! [ -x "$(command -v cc)" ]; then > - # No CC found. Fall back to 'true' > - testprog=true > - testsym=true > - return > - fi > - > - echo "Build a test program" > - cat <<EOF | cc -o ${testprog} -xc - -pthread > -#include <stdio.h> > -#include <stdlib.h> > -#include <pthread.h> > - > -void test_loop(void) { > - volatile int count = 1000000; > - > - while (count--) > - continue; > -} > - > -void *thfunc(void *arg) { > - int forever = *(int *)arg; > - > - do { > - test_loop(); > - } while (forever); > - > - return NULL; > -} > - > -int main(int argc, char *argv[]) { > - pthread_t th; > - int forever = 0; > - > - if (argc > 1) > - forever = atoi(argv[1]); > - > - pthread_create(&th, NULL, thfunc, &forever); > - test_loop(); > - pthread_join(th, NULL); > - > - return 0; > -} > -EOF > -} > - > test_per_thread() { > echo "Basic --per-thread mode test" > if ! perf record -o /dev/null --quiet ${testprog} 2> /dev/null > @@ -96,8 +45,8 @@ test_per_thread() { > return > fi > > - # run the test program in background (forever) > - ${testprog} 1 & > + # run the test program in background (for 30 seconds) > + ${testprog} 30 & > TESTPID=$! > > rm -f "${perfdata}" > @@ -205,8 +154,6 @@ test_workload() { > echo "Basic target workload test [Success]" > } > > -build_test_program > - > test_per_thread > test_register_capture > test_system_wide
| |