Commit 1dad99af authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim

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: default avatarIan Rogers <irogers@google.com>
Reviewed-by: default avatarJames 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: default avatarNamhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240625214117.953777-5-irogers@google.com
parent 49f4ac4b
...@@ -36,7 +36,7 @@ endif ...@@ -36,7 +36,7 @@ endif
perf-$(CONFIG_LIBELF) += builtin-probe.o perf-$(CONFIG_LIBELF) += builtin-probe.o
perf-y += bench/ perf-y += bench/
perf-y += tests/ perf-test-y += tests/
perf-y += perf.o perf-y += perf.o
...@@ -55,6 +55,7 @@ CFLAGS_builtin-report.o += -DDOCDIR="BUILD_STR($(srcdir_SQ)/Documentation)" ...@@ -55,6 +55,7 @@ CFLAGS_builtin-report.o += -DDOCDIR="BUILD_STR($(srcdir_SQ)/Documentation)"
perf-y += util/ perf-y += util/
perf-y += arch/ perf-y += arch/
perf-test-y += arch/
perf-ui-y += ui/ perf-ui-y += ui/
perf-y += scripts/ perf-y += scripts/
......
...@@ -425,6 +425,9 @@ endif ...@@ -425,6 +425,9 @@ endif
export PERL_PATH 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_IN := $(OUTPUT)perf-ui-in.o
LIBPERF_UI := $(OUTPUT)libperf-ui.a LIBPERF_UI := $(OUTPUT)libperf-ui.a
...@@ -435,7 +438,7 @@ PERFLIBS = $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYMBOL) ...@@ -435,7 +438,7 @@ PERFLIBS = $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYMBOL)
ifdef LIBBPF_STATIC ifdef LIBBPF_STATIC
PERFLIBS += $(LIBBPF) PERFLIBS += $(LIBBPF)
endif endif
PERFLIBS += $(LIBPERF_UI) $(LIBPMU_EVENTS) PERFLIBS += $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVENTS)
# We choose to avoid "if .. else if .. else .. endif endif" # We choose to avoid "if .. else if .. else .. endif endif"
# because maintaining the nesting to match is a pain. If # because maintaining the nesting to match is a pain. If
...@@ -737,6 +740,12 @@ $(LIBPMU_EVENTS_IN): FORCE prepare ...@@ -737,6 +740,12 @@ $(LIBPMU_EVENTS_IN): FORCE prepare
$(LIBPMU_EVENTS): $(LIBPMU_EVENTS_IN) $(LIBPMU_EVENTS): $(LIBPMU_EVENTS_IN)
$(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< $(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 $(LIBPERF_UI_IN): FORCE prepare
$(Q)$(MAKE) $(build)=perf-ui $(Q)$(MAKE) $(build)=perf-ui
......
perf-y += common.o perf-y += common.o
perf-y += $(SRCARCH)/ perf-y += $(SRCARCH)/
perf-test-y += $(SRCARCH)/
perf-y += util/ perf-y += util/
perf-$(CONFIG_DWARF_UNWIND) += tests/ perf-test-$(CONFIG_DWARF_UNWIND) += tests/
perf-y += regs_load.o perf-test-y += regs_load.o
perf-y += dwarf-unwind.o perf-test-y += dwarf-unwind.o
perf-y += vectors-page.o perf-test-y += vectors-page.o
perf-y += arch-tests.o perf-test-y += arch-tests.o
perf-y += util/ perf-y += util/
perf-y += tests/ perf-test-y += tests/
perf-y += regs_load.o perf-test-y += regs_load.o
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
perf-y += arch-tests.o perf-test-y += arch-tests.o
perf-y += cpuid-match.o perf-test-y += cpuid-match.o
perf-y += util/ perf-y += util/
perf-y += tests/ perf-test-y += tests/
perf-$(CONFIG_DWARF_UNWIND) += regs_load.o perf-test-$(CONFIG_DWARF_UNWIND) += regs_load.o
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
perf-y += arch-tests.o perf-test-y += arch-tests.o
perf-y += util/ perf-y += util/
perf-y += tests/ perf-test-y += tests/
ifdef SHELLCHECK ifdef SHELLCHECK
SHELL_TESTS := entry/syscalls/syscalltbl.sh SHELL_TESTS := entry/syscalls/syscalltbl.sh
...@@ -13,4 +13,4 @@ $(OUTPUT)%.shellcheck_log: % ...@@ -13,4 +13,4 @@ $(OUTPUT)%.shellcheck_log: %
$(call rule_mkdir) $(call rule_mkdir)
$(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false)
perf-y += $(TEST_LOGS) perf-test-y += $(TEST_LOGS)
perf-$(CONFIG_DWARF_UNWIND) += regs_load.o perf-test-$(CONFIG_DWARF_UNWIND) += regs_load.o
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
perf-y += arch-tests.o perf-test-y += arch-tests.o
perf-y += sample-parsing.o perf-test-y += sample-parsing.o
perf-y += hybrid.o perf-test-y += hybrid.o
perf-$(CONFIG_AUXTRACE) += intel-pt-test.o perf-test-$(CONFIG_AUXTRACE) += intel-pt-test.o
ifeq ($(CONFIG_EXTRA_TESTS),y) ifeq ($(CONFIG_EXTRA_TESTS),y)
perf-$(CONFIG_AUXTRACE) += insn-x86.o perf-test-$(CONFIG_AUXTRACE) += insn-x86.o
endif endif
perf-$(CONFIG_X86_64) += bp-modify.o perf-test-$(CONFIG_X86_64) += bp-modify.o
perf-y += amd-ibs-via-core-pmu.o perf-test-y += amd-ibs-via-core-pmu.o
ifdef SHELLCHECK ifdef SHELLCHECK
SHELL_TESTS := gen-insn-x86-dat.sh SHELL_TESTS := gen-insn-x86-dat.sh
...@@ -23,4 +23,4 @@ $(OUTPUT)%.shellcheck_log: % ...@@ -23,4 +23,4 @@ $(OUTPUT)%.shellcheck_log: %
$(call rule_mkdir) $(call rule_mkdir)
$(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false)
perf-y += $(TEST_LOGS) perf-test-y += $(TEST_LOGS)
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
perf-y += builtin-test.o perf-test-y += builtin-test.o
perf-y += tests-scripts.o perf-test-y += tests-scripts.o
perf-y += parse-events.o perf-test-y += parse-events.o
perf-y += dso-data.o perf-test-y += dso-data.o
perf-y += attr.o perf-test-y += attr.o
perf-y += vmlinux-kallsyms.o perf-test-y += vmlinux-kallsyms.o
perf-$(CONFIG_LIBTRACEEVENT) += openat-syscall.o perf-test-$(CONFIG_LIBTRACEEVENT) += openat-syscall.o
perf-$(CONFIG_LIBTRACEEVENT) += openat-syscall-all-cpus.o perf-test-$(CONFIG_LIBTRACEEVENT) += openat-syscall-all-cpus.o
perf-$(CONFIG_LIBTRACEEVENT) += openat-syscall-tp-fields.o perf-test-$(CONFIG_LIBTRACEEVENT) += openat-syscall-tp-fields.o
perf-$(CONFIG_LIBTRACEEVENT) += mmap-basic.o perf-test-$(CONFIG_LIBTRACEEVENT) += mmap-basic.o
perf-y += perf-record.o perf-test-y += perf-record.o
perf-y += evsel-roundtrip-name.o perf-test-y += evsel-roundtrip-name.o
perf-$(CONFIG_LIBTRACEEVENT) += evsel-tp-sched.o perf-test-$(CONFIG_LIBTRACEEVENT) += evsel-tp-sched.o
perf-y += fdarray.o perf-test-y += fdarray.o
perf-y += pmu.o perf-test-y += pmu.o
perf-y += pmu-events.o perf-test-y += pmu-events.o
perf-y += hists_common.o perf-test-y += hists_common.o
perf-y += hists_link.o perf-test-y += hists_link.o
perf-y += hists_filter.o perf-test-y += hists_filter.o
perf-y += hists_output.o perf-test-y += hists_output.o
perf-y += hists_cumulate.o perf-test-y += hists_cumulate.o
perf-y += python-use.o perf-test-y += python-use.o
perf-y += bp_signal.o perf-test-y += bp_signal.o
perf-y += bp_signal_overflow.o perf-test-y += bp_signal_overflow.o
perf-y += bp_account.o perf-test-y += bp_account.o
perf-y += wp.o perf-test-y += wp.o
perf-y += task-exit.o perf-test-y += task-exit.o
perf-y += sw-clock.o perf-test-y += sw-clock.o
perf-y += mmap-thread-lookup.o perf-test-y += mmap-thread-lookup.o
perf-y += thread-maps-share.o perf-test-y += thread-maps-share.o
perf-$(CONFIG_LIBTRACEEVENT) += switch-tracking.o perf-test-$(CONFIG_LIBTRACEEVENT) += switch-tracking.o
perf-y += keep-tracking.o perf-test-y += keep-tracking.o
perf-y += code-reading.o perf-test-y += code-reading.o
perf-y += sample-parsing.o perf-test-y += sample-parsing.o
perf-y += parse-no-sample-id-all.o perf-test-y += parse-no-sample-id-all.o
perf-y += kmod-path.o perf-test-y += kmod-path.o
perf-y += thread-map.o perf-test-y += thread-map.o
perf-y += topology.o perf-test-y += topology.o
perf-y += mem.o perf-test-y += mem.o
perf-y += cpumap.o perf-test-y += cpumap.o
perf-y += stat.o perf-test-y += stat.o
perf-y += event_update.o perf-test-y += event_update.o
perf-y += event-times.o perf-test-y += event-times.o
perf-y += expr.o perf-test-y += expr.o
perf-y += backward-ring-buffer.o perf-test-y += backward-ring-buffer.o
perf-y += sdt.o perf-test-y += sdt.o
perf-y += is_printable_array.o perf-test-y += is_printable_array.o
perf-y += bitmap.o perf-test-y += bitmap.o
perf-y += perf-hooks.o perf-test-y += perf-hooks.o
perf-y += unit_number__scnprintf.o perf-test-y += unit_number__scnprintf.o
perf-y += mem2node.o perf-test-y += mem2node.o
perf-y += maps.o perf-test-y += maps.o
perf-y += time-utils-test.o perf-test-y += time-utils-test.o
perf-y += genelf.o perf-test-y += genelf.o
perf-y += api-io.o perf-test-y += api-io.o
perf-y += demangle-java-test.o perf-test-y += demangle-java-test.o
perf-y += demangle-ocaml-test.o perf-test-y += demangle-ocaml-test.o
perf-y += pfm.o perf-test-y += pfm.o
perf-y += parse-metric.o perf-test-y += parse-metric.o
perf-y += pe-file-parsing.o perf-test-y += pe-file-parsing.o
perf-y += expand-cgroup.o perf-test-y += expand-cgroup.o
perf-y += perf-time-to-tsc.o perf-test-y += perf-time-to-tsc.o
perf-y += dlfilter-test.o perf-test-y += dlfilter-test.o
perf-y += sigtrap.o perf-test-y += sigtrap.o
perf-y += event_groups.o perf-test-y += event_groups.o
perf-y += symbols.o perf-test-y += symbols.o
perf-y += util.o perf-test-y += util.o
ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 arm arm64 powerpc)) ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 arm arm64 powerpc))
perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
endif endif
CFLAGS_attr.o += -DBINDIR="BUILD_STR($(bindir_SQ))" -DPYTHON="BUILD_STR($(PYTHON_WORD))" 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_python-use.o += -DPYTHONPATH="BUILD_STR($(OUTPUT)python)" -DPYTHON="BUILD_STR($(PYTHON_WORD))"
CFLAGS_dwarf-unwind.o += -fno-optimize-sibling-calls CFLAGS_dwarf-unwind.o += -fno-optimize-sibling-calls
perf-y += workloads/ perf-test-y += workloads/
ifdef SHELLCHECK ifdef SHELLCHECK
SHELL_TESTS := $(shell find tests/shell -executable -type f -name '*.sh') SHELL_TESTS := $(shell find tests/shell -executable -type f -name '*.sh')
...@@ -90,4 +90,4 @@ $(OUTPUT)%.shellcheck_log: % ...@@ -90,4 +90,4 @@ $(OUTPUT)%.shellcheck_log: %
$(call rule_mkdir) $(call rule_mkdir)
$(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ && rm $@ && false)
perf-y += $(TEST_LOGS) perf-test-y += $(TEST_LOGS)
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
perf-y += noploop.o perf-test-y += noploop.o
perf-y += thloop.o perf-test-y += thloop.o
perf-y += leafloop.o perf-test-y += leafloop.o
perf-y += sqrtloop.o perf-test-y += sqrtloop.o
perf-y += brstack.o perf-test-y += brstack.o
perf-y += datasym.o perf-test-y += datasym.o
CFLAGS_sqrtloop.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE CFLAGS_sqrtloop.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
CFLAGS_leafloop.o = -g -O0 -fno-inline -fno-omit-frame-pointer -U_FORTIFY_SOURCE CFLAGS_leafloop.o = -g -O0 -fno-inline -fno-omit-frame-pointer -U_FORTIFY_SOURCE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment