Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf bench: Make bench its own library

Make the benchmark code into a library so it may be linked against
things like the python module to avoid compiling code twice.

Signed-off-by: Ian Rogers <irogers@google.com>
Reviewed-by: James Clark <james.clark@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Nick Terrell <terrelln@fb.com>
Cc: Gary Guo <gary@garyguo.net>
Cc: Alex Gaynor <alex.gaynor@gmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Wedson Almeida Filho <wedsonaf@gmail.com>
Cc: Ze Gao <zegao2021@gmail.com>
Cc: Alice Ryhl <aliceryhl@google.com>
Cc: Andrei Vagin <avagin@google.com>
Cc: Yicong Yang <yangyicong@hisilicon.com>
Cc: Jonathan Cameron <jonathan.cameron@huawei.com>
Cc: Guo Ren <guoren@kernel.org>
Cc: Miguel Ojeda <ojeda@kernel.org>
Cc: Will Deacon <will@kernel.org>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Leo Yan <leo.yan@linux.dev>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Benno Lossin <benno.lossin@proton.me>
Cc: Björn Roy Baron <bjorn3_gh@protonmail.com>
Cc: Andreas Hindborg <a.hindborg@samsung.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240625214117.953777-6-irogers@google.com

authored by

Ian Rogers and committed by
Namhyung Kim
21cc3bc0 1dad99af

+35 -26
+2 -2
tools/perf/Build
··· 1 - perf-y += builtin-bench.o 1 + perf-bench-y += builtin-bench.o 2 2 perf-y += builtin-annotate.o 3 3 perf-y += builtin-config.o 4 4 perf-y += builtin-diff.o ··· 35 35 36 36 perf-$(CONFIG_LIBELF) += builtin-probe.o 37 37 38 - perf-y += bench/ 38 + perf-bench-y += bench/ 39 39 perf-test-y += tests/ 40 40 41 41 perf-y += perf.o
+10 -1
tools/perf/Makefile.perf
··· 425 425 426 426 export PERL_PATH 427 427 428 + LIBPERF_BENCH_IN := $(OUTPUT)perf-bench-in.o 429 + LIBPERF_BENCH := $(OUTPUT)libperf-bench.a 430 + 428 431 LIBPERF_TEST_IN := $(OUTPUT)perf-test-in.o 429 432 LIBPERF_TEST := $(OUTPUT)libperf-test.a 430 433 ··· 441 438 ifdef LIBBPF_STATIC 442 439 PERFLIBS += $(LIBBPF) 443 440 endif 444 - PERFLIBS += $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVENTS) 441 + PERFLIBS += $(LIBPERF_BENCH) $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVENTS) 445 442 446 443 # We choose to avoid "if .. else if .. else .. endif endif" 447 444 # because maintaining the nesting to match is a pain. If ··· 741 738 $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=pmu-events obj=pmu-events 742 739 743 740 $(LIBPMU_EVENTS): $(LIBPMU_EVENTS_IN) 741 + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< 742 + 743 + $(LIBPERF_BENCH_IN): FORCE prepare 744 + $(Q)$(MAKE) $(build)=perf-bench 745 + 746 + $(LIBPERF_BENCH): $(LIBPERF_BENCH_IN) 744 747 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< 745 748 746 749 $(LIBPERF_TEST_IN): FORCE prepare
+23 -23
tools/perf/bench/Build
··· 1 - perf-y += sched-messaging.o 2 - perf-y += sched-pipe.o 3 - perf-y += sched-seccomp-notify.o 4 - perf-y += syscall.o 5 - perf-y += mem-functions.o 6 - perf-y += futex-hash.o 7 - perf-y += futex-wake.o 8 - perf-y += futex-wake-parallel.o 9 - perf-y += futex-requeue.o 10 - perf-y += futex-lock-pi.o 11 - perf-y += epoll-wait.o 12 - perf-y += epoll-ctl.o 13 - perf-y += synthesize.o 14 - perf-y += kallsyms-parse.o 15 - perf-y += find-bit-bench.o 16 - perf-y += inject-buildid.o 17 - perf-y += evlist-open-close.o 18 - perf-y += breakpoint.o 19 - perf-y += pmu-scan.o 20 - perf-y += uprobe.o 1 + perf-bench-y += sched-messaging.o 2 + perf-bench-y += sched-pipe.o 3 + perf-bench-y += sched-seccomp-notify.o 4 + perf-bench-y += syscall.o 5 + perf-bench-y += mem-functions.o 6 + perf-bench-y += futex-hash.o 7 + perf-bench-y += futex-wake.o 8 + perf-bench-y += futex-wake-parallel.o 9 + perf-bench-y += futex-requeue.o 10 + perf-bench-y += futex-lock-pi.o 11 + perf-bench-y += epoll-wait.o 12 + perf-bench-y += epoll-ctl.o 13 + perf-bench-y += synthesize.o 14 + perf-bench-y += kallsyms-parse.o 15 + perf-bench-y += find-bit-bench.o 16 + perf-bench-y += inject-buildid.o 17 + perf-bench-y += evlist-open-close.o 18 + perf-bench-y += breakpoint.o 19 + perf-bench-y += pmu-scan.o 20 + perf-bench-y += uprobe.o 21 21 22 - perf-$(CONFIG_X86_64) += mem-memcpy-x86-64-asm.o 23 - perf-$(CONFIG_X86_64) += mem-memset-x86-64-asm.o 22 + perf-bench-$(CONFIG_X86_64) += mem-memcpy-x86-64-asm.o 23 + perf-bench-$(CONFIG_X86_64) += mem-memset-x86-64-asm.o 24 24 25 - perf-$(CONFIG_NUMA) += numa.o 25 + perf-bench-$(CONFIG_NUMA) += numa.o