[v4,0/8] Run tests in parallel

Message ID 20240214045356.748330-1-irogers@google.com
Headers
Series Run tests in parallel |

Message

Ian Rogers Feb. 14, 2024, 4:53 a.m. UTC
  If command line option '-p' is provided, start/fork all tests in the
main thread and then gather them in order at the end. On a laptop test
time was reduced from 5 minutes 21 seconds to 1 minute 50 seconds. The
option isn't default as the test shows up perf and test flakes.

The '-v' option is modified so that 'perf test -v' will give verbose
output only from failing tests.

v4 - fix bug in width computation.
v3 - fix a crash if shell test directory isn't found, remove merged patch.
v2 - fix parallel test output/verbose issue
v1 - initial PoC

Ian Rogers (8):
  perf thread_map: Skip exited threads when scanning /proc
  perf list: Add scandirat compatibility function
  perf tests: Avoid fork in perf_has_symbol test
  tools subcmd: Add a no exec function call option
  perf test: Rename builtin-test-list and add missed header guard
  perf tests: Use scandirat for shell script finding
  perf tests: Run time generate shell test suites
  perf tests: Add option to run tests in parallel

 tools/lib/subcmd/run-command.c                |   2 +
 tools/lib/subcmd/run-command.h                |   2 +
 tools/perf/tests/Build                        |   2 +-
 tools/perf/tests/builtin-test-list.c          | 207 ----------
 tools/perf/tests/builtin-test-list.h          |  12 -
 tools/perf/tests/builtin-test.c               | 378 ++++++++++--------
 tools/perf/tests/shell/lib/perf_has_symbol.sh |   2 +-
 tools/perf/tests/tests-scripts.c              | 257 ++++++++++++
 tools/perf/tests/tests-scripts.h              |   9 +
 tools/perf/util/print-events.c                |  12 +-
 tools/perf/util/thread_map.c                  |   9 +-
 tools/perf/util/util.c                        |  19 +
 tools/perf/util/util.h                        |   8 +
 13 files changed, 509 insertions(+), 410 deletions(-)
 delete mode 100644 tools/perf/tests/builtin-test-list.c
 delete mode 100644 tools/perf/tests/builtin-test-list.h
 create mode 100644 tools/perf/tests/tests-scripts.c
 create mode 100644 tools/perf/tests/tests-scripts.h
  

Comments

Namhyung Kim Feb. 16, 2024, 7:57 p.m. UTC | #1
Hi Ian,

On Tue, Feb 13, 2024 at 8:54 PM Ian Rogers <irogers@google.com> wrote:
>
> If command line option '-p' is provided, start/fork all tests in the
> main thread and then gather them in order at the end. On a laptop test
> time was reduced from 5 minutes 21 seconds to 1 minute 50 seconds. The
> option isn't default as the test shows up perf and test flakes.

It's a bit sad that tests flake when run in parallel but I think we can
work on improving it later.  So

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

>
> The '-v' option is modified so that 'perf test -v' will give verbose
> output only from failing tests.
>
> v4 - fix bug in width computation.
> v3 - fix a crash if shell test directory isn't found, remove merged patch.
> v2 - fix parallel test output/verbose issue
> v1 - initial PoC
>
> Ian Rogers (8):
>   perf thread_map: Skip exited threads when scanning /proc
>   perf list: Add scandirat compatibility function
>   perf tests: Avoid fork in perf_has_symbol test
>   tools subcmd: Add a no exec function call option
>   perf test: Rename builtin-test-list and add missed header guard
>   perf tests: Use scandirat for shell script finding
>   perf tests: Run time generate shell test suites
>   perf tests: Add option to run tests in parallel
>
>  tools/lib/subcmd/run-command.c                |   2 +
>  tools/lib/subcmd/run-command.h                |   2 +
>  tools/perf/tests/Build                        |   2 +-
>  tools/perf/tests/builtin-test-list.c          | 207 ----------
>  tools/perf/tests/builtin-test-list.h          |  12 -
>  tools/perf/tests/builtin-test.c               | 378 ++++++++++--------
>  tools/perf/tests/shell/lib/perf_has_symbol.sh |   2 +-
>  tools/perf/tests/tests-scripts.c              | 257 ++++++++++++
>  tools/perf/tests/tests-scripts.h              |   9 +
>  tools/perf/util/print-events.c                |  12 +-
>  tools/perf/util/thread_map.c                  |   9 +-
>  tools/perf/util/util.c                        |  19 +
>  tools/perf/util/util.h                        |   8 +
>  13 files changed, 509 insertions(+), 410 deletions(-)
>  delete mode 100644 tools/perf/tests/builtin-test-list.c
>  delete mode 100644 tools/perf/tests/builtin-test-list.h
>  create mode 100644 tools/perf/tests/tests-scripts.c
>  create mode 100644 tools/perf/tests/tests-scripts.h
>
> --
> 2.43.0.687.g38aa6559b0-goog
>