• Ian Rogers's avatar
    perf tests: Add option to run tests in parallel · b482f5f8
    Ian Rogers authored
    By default tests are forked, add an option (-p or --parallel) so that
    the forked tests are all started in parallel and then their output
    gathered serially. This is opt-in as running in parallel can cause
    test flakes.
    
    Rather than fork within the code, the start_command/finish_command
    from libsubcmd are used. This changes how stderr and stdout are
    handled. The child stderr and stdout are always read to avoid the
    child blocking. If verbose is 1 (-v) then if the test fails the child
    stdout and stderr are displayed. If the verbose is >1 (e.g. -vv) then
    the stdout and stderr from the child are immediately displayed.
    
    An unscientific test on my laptop shows the wall clock time for perf
    test without parallel being 5 minutes 21 seconds and with parallel
    (-p) being 1 minute 50 seconds.
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Justin Stitt <justinstitt@google.com>
    Cc: Bill Wendling <morbo@google.com>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Yang Jihong <yangjihong1@huawei.com>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com>
    Cc: llvm@lists.linux.dev
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20240221034155.1500118-9-irogers@google.com
    b482f5f8
builtin-test.c 13.9 KB