[PATCH v5 0/5] meson: wire up support for benchmarks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

this small patch series implements support for running our benchmarks in
"t/perf" via Meson. The series does not aim to replace "t/perf/run",
which is more fully-featured and allows running benchmarks against
multiple different trees. Instead, this series only allows running the
benchmarks against the current tree. Users are thus expected to continue
using "t/perf/run" for more advanced usecases.

Changes in v2:
  - Adapt "aggregate.perl" to use a "/usr/bin/env perl" shebang.
  - Link to v1: https://lore.kernel.org/r/20250331-pks-meson-benchmarks-v1-0-b2ace85616a3@xxxxxx

Changes in v3:
  - Document how to run benchmarks in "meson.build".
  - Expand the message for the commit that enables out-of-tree
    benchmarking.
  - Link to v2: https://lore.kernel.org/r/20250414-pks-meson-benchmarks-v2-0-04377080a167@xxxxxx

Changes in v4:
  - The patch series was rebased on top of f65182a99e5 (The ninth batch,
    2025-04-24). This is due to a conflict with ps/test-wo-perl-prereq.
  - Introduce a 'benchmarks' option. This allows developers to require
    benchmarks as desired. By default, we auto-detect whether the host
    system has all dependencies available and enable or disable them
    accordingly.
  - Report whether or not benchmarks are enabled via `summary()`.
  - Our benchmarks depend on Perl, so add this dependency accordingly.
  - Link to v3: https://lore.kernel.org/r/20250422-pks-meson-benchmarks-v3-0-7aad68bac6fd@xxxxxx

Changes in v5:
  - Clarify that benchmarks are not run in parallel by default.
  - Link to v4: https://lore.kernel.org/r/20250425-pks-meson-benchmarks-v4-0-6b89555052c3@xxxxxx

Thanks!

Patrick

---
Patrick Steinhardt (5):
      t/perf: fix benchmarks with alternate repo formats
      t/perf: use configured PERL_PATH
      t/perf: fix benchmarks with out-of-tree builds
      meson: wire up benchmarks
      meson: wire up benchmarking options

 meson.build           | 22 ++++++++++-----
 meson_options.txt     |  8 ++++++
 t/meson.build         | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++
 t/perf/aggregate.perl |  2 +-
 t/perf/perf-lib.sh    | 32 ++++++++++++++++++---
 t/perf/run            |  4 +--
 6 files changed, 131 insertions(+), 14 deletions(-)

Range-diff versus v4:

1:  bc19180b174 = 1:  03181f601f2 t/perf: fix benchmarks with alternate repo formats
2:  3e128c09333 = 2:  afb2fe1ce63 t/perf: use configured PERL_PATH
3:  f7adc20d14c = 3:  a61e43c6cfb t/perf: fix benchmarks with out-of-tree builds
4:  8b3ea380503 ! 4:  e51b46296ed meson: wire up benchmarks
    @@ meson.build
      #      # Execute single test interactively such that features like `debug ()` work.
      #      $ meson test -i --test-args='-ix' t1400-update-ref
      #
    +-#   Test execution is parallelized by default and scales with the number of
    +-#   processor cores available. You can change the number of processes by passing
    +-#   the `-jN` flag to `meson test`.
     +#      # Execute all benchmarks.
     +#      $ meson test -i --benchmark
     +#
     +#      # Execute single benchmark.
     +#      $ meson test -i --benchmark p0000-*
     +#
    - #   Test execution is parallelized by default and scales with the number of
    - #   processor cores available. You can change the number of processes by passing
    - #   the `-jN` flag to `meson test`.
    ++#   Test execution (but not benchmark execution) is parallelized by default and
    ++#   scales with the number of processor cores available. You can change the
    ++#   number of processes by passing the `-jN` flag to `meson test`.
    + #
    + # 4. Install the Git distribution. Again, this can be done via Meson, Ninja or
    + #    Samurai:
     @@ meson.build: git = find_program('git', dirs: program_path, native: true, required: false)
      sed = find_program('sed', dirs: program_path, native: true)
      shell = find_program('sh', dirs: program_path, native: true)
5:  a0b06cc7017 = 5:  20f9dd86d66 meson: wire up benchmarking options

---
base-commit: f65182a99e545d2f2bc22e6c1c2da192133b16a3
change-id: 20250328-pks-meson-benchmarks-a8fac5f69467





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux