perf test: Make tests its own library
Make the tests code its own library. This is done to avoid compiling code twice, once for the perf tool and once for the perf python module. 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-5-irogers@google.com
This commit is contained in:
+2
-1
@@ -36,7 +36,7 @@ endif
|
||||
perf-$(CONFIG_LIBELF) += builtin-probe.o
|
||||
|
||||
perf-y += bench/
|
||||
perf-y += tests/
|
||||
perf-test-y += tests/
|
||||
|
||||
perf-y += perf.o
|
||||
|
||||
@@ -55,6 +55,7 @@ CFLAGS_builtin-report.o += -DDOCDIR="BUILD_STR($(srcdir_SQ)/Documentation)"
|
||||
|
||||
perf-y += util/
|
||||
perf-y += arch/
|
||||
perf-test-y += arch/
|
||||
perf-ui-y += ui/
|
||||
perf-y += scripts/
|
||||
|
||||
|
||||
@@ -425,6 +425,9 @@ endif
|
||||
|
||||
export PERL_PATH
|
||||
|
||||
LIBPERF_TEST_IN := $(OUTPUT)perf-test-in.o
|
||||
LIBPERF_TEST := $(OUTPUT)libperf-test.a
|
||||
|
||||
LIBPERF_UI_IN := $(OUTPUT)perf-ui-in.o
|
||||
LIBPERF_UI := $(OUTPUT)libperf-ui.a
|
||||
|
||||
@@ -435,7 +438,7 @@ PERFLIBS = $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYMBOL)
|
||||
ifdef LIBBPF_STATIC
|
||||
PERFLIBS += $(LIBBPF)
|
||||
endif
|
||||
PERFLIBS += $(LIBPERF_UI) $(LIBPMU_EVENTS)
|
||||
PERFLIBS += $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVENTS)
|
||||
|
||||
# We choose to avoid "if .. else if .. else .. endif endif"
|
||||
# because maintaining the nesting to match is a pain. If
|
||||
@@ -737,6 +740,12 @@ $(LIBPMU_EVENTS_IN): FORCE prepare
|
||||
$(LIBPMU_EVENTS): $(LIBPMU_EVENTS_IN)
|
||||
$(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $<
|
||||
|
||||
$(LIBPERF_TEST_IN): FORCE prepare
|
||||
$(Q)$(MAKE) $(build)=perf-test
|
||||
|
||||
$(LIBPERF_TEST): $(LIBPERF_TEST_IN)
|
||||
$(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $<
|
||||
|
||||
$(LIBPERF_UI_IN): FORCE prepare
|
||||
$(Q)$(MAKE) $(build)=perf-ui
|
||||
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
perf-y += common.o
|
||||
perf-y += $(SRCARCH)/
|
||||
perf-test-y += $(SRCARCH)/
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
perf-y += util/
|
||||
perf-$(CONFIG_DWARF_UNWIND) += tests/
|
||||
perf-test-$(CONFIG_DWARF_UNWIND) += tests/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
perf-y += regs_load.o
|
||||
perf-y += dwarf-unwind.o
|
||||
perf-y += vectors-page.o
|
||||
perf-test-y += regs_load.o
|
||||
perf-test-y += dwarf-unwind.o
|
||||
perf-test-y += vectors-page.o
|
||||
|
||||
perf-y += arch-tests.o
|
||||
perf-test-y += arch-tests.o
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
perf-y += util/
|
||||
perf-y += tests/
|
||||
perf-test-y += tests/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
perf-y += regs_load.o
|
||||
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
perf-test-y += regs_load.o
|
||||
perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
|
||||
perf-y += arch-tests.o
|
||||
perf-y += cpuid-match.o
|
||||
perf-test-y += arch-tests.o
|
||||
perf-test-y += cpuid-match.o
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
perf-y += util/
|
||||
perf-y += tests/
|
||||
perf-test-y += tests/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
perf-$(CONFIG_DWARF_UNWIND) += regs_load.o
|
||||
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
perf-test-$(CONFIG_DWARF_UNWIND) += regs_load.o
|
||||
perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
|
||||
perf-y += arch-tests.o
|
||||
perf-test-y += arch-tests.o
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
perf-y += util/
|
||||
perf-y += tests/
|
||||
perf-test-y += tests/
|
||||
|
||||
ifdef SHELLCHECK
|
||||
SHELL_TESTS := entry/syscalls/syscalltbl.sh
|
||||
@@ -13,4 +13,4 @@ $(OUTPUT)%.shellcheck_log: %
|
||||
$(call rule_mkdir)
|
||||
$(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false)
|
||||
|
||||
perf-y += $(TEST_LOGS)
|
||||
perf-test-y += $(TEST_LOGS)
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
perf-$(CONFIG_DWARF_UNWIND) += regs_load.o
|
||||
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
perf-test-$(CONFIG_DWARF_UNWIND) += regs_load.o
|
||||
perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
|
||||
perf-y += arch-tests.o
|
||||
perf-y += sample-parsing.o
|
||||
perf-y += hybrid.o
|
||||
perf-$(CONFIG_AUXTRACE) += intel-pt-test.o
|
||||
perf-test-y += arch-tests.o
|
||||
perf-test-y += sample-parsing.o
|
||||
perf-test-y += hybrid.o
|
||||
perf-test-$(CONFIG_AUXTRACE) += intel-pt-test.o
|
||||
ifeq ($(CONFIG_EXTRA_TESTS),y)
|
||||
perf-$(CONFIG_AUXTRACE) += insn-x86.o
|
||||
perf-test-$(CONFIG_AUXTRACE) += insn-x86.o
|
||||
endif
|
||||
perf-$(CONFIG_X86_64) += bp-modify.o
|
||||
perf-y += amd-ibs-via-core-pmu.o
|
||||
perf-test-$(CONFIG_X86_64) += bp-modify.o
|
||||
perf-test-y += amd-ibs-via-core-pmu.o
|
||||
|
||||
ifdef SHELLCHECK
|
||||
SHELL_TESTS := gen-insn-x86-dat.sh
|
||||
@@ -23,4 +23,4 @@ $(OUTPUT)%.shellcheck_log: %
|
||||
$(call rule_mkdir)
|
||||
$(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false)
|
||||
|
||||
perf-y += $(TEST_LOGS)
|
||||
perf-test-y += $(TEST_LOGS)
|
||||
|
||||
+70
-70
@@ -1,82 +1,82 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
perf-y += builtin-test.o
|
||||
perf-y += tests-scripts.o
|
||||
perf-y += parse-events.o
|
||||
perf-y += dso-data.o
|
||||
perf-y += attr.o
|
||||
perf-y += vmlinux-kallsyms.o
|
||||
perf-$(CONFIG_LIBTRACEEVENT) += openat-syscall.o
|
||||
perf-$(CONFIG_LIBTRACEEVENT) += openat-syscall-all-cpus.o
|
||||
perf-$(CONFIG_LIBTRACEEVENT) += openat-syscall-tp-fields.o
|
||||
perf-$(CONFIG_LIBTRACEEVENT) += mmap-basic.o
|
||||
perf-y += perf-record.o
|
||||
perf-y += evsel-roundtrip-name.o
|
||||
perf-$(CONFIG_LIBTRACEEVENT) += evsel-tp-sched.o
|
||||
perf-y += fdarray.o
|
||||
perf-y += pmu.o
|
||||
perf-y += pmu-events.o
|
||||
perf-y += hists_common.o
|
||||
perf-y += hists_link.o
|
||||
perf-y += hists_filter.o
|
||||
perf-y += hists_output.o
|
||||
perf-y += hists_cumulate.o
|
||||
perf-y += python-use.o
|
||||
perf-y += bp_signal.o
|
||||
perf-y += bp_signal_overflow.o
|
||||
perf-y += bp_account.o
|
||||
perf-y += wp.o
|
||||
perf-y += task-exit.o
|
||||
perf-y += sw-clock.o
|
||||
perf-y += mmap-thread-lookup.o
|
||||
perf-y += thread-maps-share.o
|
||||
perf-$(CONFIG_LIBTRACEEVENT) += switch-tracking.o
|
||||
perf-y += keep-tracking.o
|
||||
perf-y += code-reading.o
|
||||
perf-y += sample-parsing.o
|
||||
perf-y += parse-no-sample-id-all.o
|
||||
perf-y += kmod-path.o
|
||||
perf-y += thread-map.o
|
||||
perf-y += topology.o
|
||||
perf-y += mem.o
|
||||
perf-y += cpumap.o
|
||||
perf-y += stat.o
|
||||
perf-y += event_update.o
|
||||
perf-y += event-times.o
|
||||
perf-y += expr.o
|
||||
perf-y += backward-ring-buffer.o
|
||||
perf-y += sdt.o
|
||||
perf-y += is_printable_array.o
|
||||
perf-y += bitmap.o
|
||||
perf-y += perf-hooks.o
|
||||
perf-y += unit_number__scnprintf.o
|
||||
perf-y += mem2node.o
|
||||
perf-y += maps.o
|
||||
perf-y += time-utils-test.o
|
||||
perf-y += genelf.o
|
||||
perf-y += api-io.o
|
||||
perf-y += demangle-java-test.o
|
||||
perf-y += demangle-ocaml-test.o
|
||||
perf-y += pfm.o
|
||||
perf-y += parse-metric.o
|
||||
perf-y += pe-file-parsing.o
|
||||
perf-y += expand-cgroup.o
|
||||
perf-y += perf-time-to-tsc.o
|
||||
perf-y += dlfilter-test.o
|
||||
perf-y += sigtrap.o
|
||||
perf-y += event_groups.o
|
||||
perf-y += symbols.o
|
||||
perf-y += util.o
|
||||
perf-test-y += builtin-test.o
|
||||
perf-test-y += tests-scripts.o
|
||||
perf-test-y += parse-events.o
|
||||
perf-test-y += dso-data.o
|
||||
perf-test-y += attr.o
|
||||
perf-test-y += vmlinux-kallsyms.o
|
||||
perf-test-$(CONFIG_LIBTRACEEVENT) += openat-syscall.o
|
||||
perf-test-$(CONFIG_LIBTRACEEVENT) += openat-syscall-all-cpus.o
|
||||
perf-test-$(CONFIG_LIBTRACEEVENT) += openat-syscall-tp-fields.o
|
||||
perf-test-$(CONFIG_LIBTRACEEVENT) += mmap-basic.o
|
||||
perf-test-y += perf-record.o
|
||||
perf-test-y += evsel-roundtrip-name.o
|
||||
perf-test-$(CONFIG_LIBTRACEEVENT) += evsel-tp-sched.o
|
||||
perf-test-y += fdarray.o
|
||||
perf-test-y += pmu.o
|
||||
perf-test-y += pmu-events.o
|
||||
perf-test-y += hists_common.o
|
||||
perf-test-y += hists_link.o
|
||||
perf-test-y += hists_filter.o
|
||||
perf-test-y += hists_output.o
|
||||
perf-test-y += hists_cumulate.o
|
||||
perf-test-y += python-use.o
|
||||
perf-test-y += bp_signal.o
|
||||
perf-test-y += bp_signal_overflow.o
|
||||
perf-test-y += bp_account.o
|
||||
perf-test-y += wp.o
|
||||
perf-test-y += task-exit.o
|
||||
perf-test-y += sw-clock.o
|
||||
perf-test-y += mmap-thread-lookup.o
|
||||
perf-test-y += thread-maps-share.o
|
||||
perf-test-$(CONFIG_LIBTRACEEVENT) += switch-tracking.o
|
||||
perf-test-y += keep-tracking.o
|
||||
perf-test-y += code-reading.o
|
||||
perf-test-y += sample-parsing.o
|
||||
perf-test-y += parse-no-sample-id-all.o
|
||||
perf-test-y += kmod-path.o
|
||||
perf-test-y += thread-map.o
|
||||
perf-test-y += topology.o
|
||||
perf-test-y += mem.o
|
||||
perf-test-y += cpumap.o
|
||||
perf-test-y += stat.o
|
||||
perf-test-y += event_update.o
|
||||
perf-test-y += event-times.o
|
||||
perf-test-y += expr.o
|
||||
perf-test-y += backward-ring-buffer.o
|
||||
perf-test-y += sdt.o
|
||||
perf-test-y += is_printable_array.o
|
||||
perf-test-y += bitmap.o
|
||||
perf-test-y += perf-hooks.o
|
||||
perf-test-y += unit_number__scnprintf.o
|
||||
perf-test-y += mem2node.o
|
||||
perf-test-y += maps.o
|
||||
perf-test-y += time-utils-test.o
|
||||
perf-test-y += genelf.o
|
||||
perf-test-y += api-io.o
|
||||
perf-test-y += demangle-java-test.o
|
||||
perf-test-y += demangle-ocaml-test.o
|
||||
perf-test-y += pfm.o
|
||||
perf-test-y += parse-metric.o
|
||||
perf-test-y += pe-file-parsing.o
|
||||
perf-test-y += expand-cgroup.o
|
||||
perf-test-y += perf-time-to-tsc.o
|
||||
perf-test-y += dlfilter-test.o
|
||||
perf-test-y += sigtrap.o
|
||||
perf-test-y += event_groups.o
|
||||
perf-test-y += symbols.o
|
||||
perf-test-y += util.o
|
||||
|
||||
ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 arm arm64 powerpc))
|
||||
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
|
||||
endif
|
||||
|
||||
CFLAGS_attr.o += -DBINDIR="BUILD_STR($(bindir_SQ))" -DPYTHON="BUILD_STR($(PYTHON_WORD))"
|
||||
CFLAGS_python-use.o += -DPYTHONPATH="BUILD_STR($(OUTPUT)python)" -DPYTHON="BUILD_STR($(PYTHON_WORD))"
|
||||
CFLAGS_dwarf-unwind.o += -fno-optimize-sibling-calls
|
||||
|
||||
perf-y += workloads/
|
||||
perf-test-y += workloads/
|
||||
|
||||
ifdef SHELLCHECK
|
||||
SHELL_TESTS := $(shell find tests/shell -executable -type f -name '*.sh')
|
||||
@@ -90,4 +90,4 @@ $(OUTPUT)%.shellcheck_log: %
|
||||
$(call rule_mkdir)
|
||||
$(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false)
|
||||
|
||||
perf-y += $(TEST_LOGS)
|
||||
perf-test-y += $(TEST_LOGS)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
perf-y += noploop.o
|
||||
perf-y += thloop.o
|
||||
perf-y += leafloop.o
|
||||
perf-y += sqrtloop.o
|
||||
perf-y += brstack.o
|
||||
perf-y += datasym.o
|
||||
perf-test-y += noploop.o
|
||||
perf-test-y += thloop.o
|
||||
perf-test-y += leafloop.o
|
||||
perf-test-y += sqrtloop.o
|
||||
perf-test-y += brstack.o
|
||||
perf-test-y += datasym.o
|
||||
|
||||
CFLAGS_sqrtloop.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
|
||||
CFLAGS_leafloop.o = -g -O0 -fno-inline -fno-omit-frame-pointer -U_FORTIFY_SOURCE
|
||||
|
||||
Reference in New Issue
Block a user