From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 120F517DE24 for ; Tue, 25 Jun 2024 21:41:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351685; cv=none; b=pKhsGKlozqeF+BXPPBxb+cUbkbyJ4M6R49hGNyLgDCI6lepmmgbbtQODUkikAxL8ipe4sF+FqGL+BOzkDcWADskwHW6AuWDUxiB2FPjbGop5jY/V5iJNrpO/MPrHoNuiy1svSOfKsqBCXcGdth3FUXk7CPk7X8Ep/4kjJeiuUs8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351685; c=relaxed/simple; bh=AGF2g3tEA7zbe6kDn2NaGFb8pt75qgtrYCw6tl/k2BE=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=TKTb7HIrRPkxqzDWSCdspgSccfZM/qNDEjIL0ubZrPN2dIJfHeuwfxybuDrGU4vDzmr6v0cZmN2PjH79baI9iTOlv7U0l0JcjSwO86EY6IVEnoSuFMlGtnl/JdZX2ymneduH8dJx+NVjwqm8qt6wIHs64cFeUwrc/EhluiW9Ghs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=dv9GOw6b; arc=none smtp.client-ip=209.85.219.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="dv9GOw6b" Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-e0268d49b6dso12173368276.2 for ; Tue, 25 Jun 2024 14:41:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351683; x=1719956483; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=VV5nTHz7JpmXL00HnuBhzQFlSeI21ZYNHe64ER+6Mts=; b=dv9GOw6brwgRK55b2Bpct+M/e95IbCTqwcH9chQ9CftE3eAK1aHKAq8A8i2K+YJtZw Q6kItKzQZrQAvZhsL9NTu21hpa9nwa3rtclg1BPhM9yDUZbHYCWkSaRJn95MxMOhcJbp 7SWeyA5o+yuikdTCrNlmnUIDhsZWwxJNsrDP+zVPyYrdugZvy8FHMbJVPXsKByvwmNfm DD1IfASVeuAlikgBXuQJTCl+JK6RoT+GFYZN8YKXkLXLWxQFRGNfZh0e5Xm6AuK/A17Y IPWGD8JMI5nEQSBELZWqNnGepOyjbBGdgEIT8g50/mxRrAZFzQu0M/eI7RL03rrvGna+ axvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351683; x=1719956483; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VV5nTHz7JpmXL00HnuBhzQFlSeI21ZYNHe64ER+6Mts=; b=KA7Ki6x7MaDX3LNSFB9+ddUF0hbDUqSxZ2cVgdT2Afj5ji6TvfLYGQKsRB+QTxeBL7 iFPWBsM073l8u0PhgDn19BUbVCDlRQrd8jfx9Mzg11e3gZ6mBEKEPMzPoh09u8H5KpFg 62GG69KEQBYdgZJZrxllFHg9UAoYJ6Ll5hpCofJI+JzmDPfFY70eRFEJS4xywkJElwpO xJTA+yoj7waNgIn9fZsRlKDM8+pSNn7SYuz6gzuCYPXJ3n2P7lMJst4muHSh1JrsQmOy cTqE2/iHR26RD3wJjDkDrwtCwDmrUJ3zamCoxxSSqBq1nEB9eRXg/5ZgFCxjHFRfJzMU u+5A== X-Forwarded-Encrypted: i=1; AJvYcCW9o8nt48m2UxX883vkhpZjCq7hKAPSsXOXNHJrU2dB66Pm8D23BzLxhKsPw1822R0pv0trrxcv3Tog8Fck5gLphVBQDrZeoK+l9eLI X-Gm-Message-State: AOJu0Yyd0SQYSGqNz6u9CaioiAdPv7q+fdRi6rZG9YAfn8quy4qD1+Nh ki3MzBSnHPMp/y2qmtUBZv5mtV5Sz2bFcrLfFfCfawBB7BIoEqjcaGCFQindk/NgtHNJgZynlZu hPHk/kA== X-Google-Smtp-Source: AGHT+IEy8zCWgmfD2YMUxVYSQZooaRbMoZ2CL2WLYr8JNXB6DT7t3q7Wwd6PL2YwS3pqDvoYGj9f/G0IqvHi X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a05:6902:1827:b0:e02:bd52:dd73 with SMTP id 3f1490d57ef6-e0303f48404mr29330276.7.1719351682873; Tue, 25 Jun 2024 14:41:22 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:10 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-2-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 1/8] perf build: Add '*.a' to clean targets From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix some excessively long lines by deploying '\'. Signed-off-by: Ian Rogers --- tools/perf/Makefile.perf | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 5c35c0d89306..acc41a6717db 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -1201,12 +1201,19 @@ endif # CONFIG_PERF_BPF_SKEL bpf-skel-clean: $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) $(SKE= L_OUT)/vmlinux.h =20 -clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-cl= ean $(LIBPERF)-clean arm64-sysreg-defs-clean fixdep-clean python-clean bpf-= skel-clean tests-coresight-targets-clean - $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive = $(OUTPUT)perf-iostat $(LANG_BINDINGS) - $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete= -o -name '\.*.d' -delete -o -name '*.shellcheck_log' -delete +clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-cl= ean $(LIBPERF)-clean \ + arm64-sysreg-defs-clean fixdep-clean python-clean bpf-skel-clean \ + tests-coresight-targets-clean + $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive \ + $(OUTPUT)perf-iostat $(LANG_BINDINGS) + $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '*.a' -delete -o \ + -name '\.*.cmd' -delete -o -name '\.*.d' -delete -o -name '*.shellcheck_= log' -delete $(Q)$(RM) $(OUTPUT).config-detected - $(call QUIET_CLEAN, core-progs) $(RM) $(ALL_PROGRAMS) perf perf-read-vdso= 32 perf-read-vdsox32 $(OUTPUT)$(LIBJVMTI).so - $(call QUIET_CLEAN, core-gen) $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo= $(OUTPUT)common-cmds.h TAGS tags cscope* $(OUTPUT)PERF-VERSION-FILE $(OUTP= UT)FEATURE-DUMP $(OUTPUT)util/*-bison* $(OUTPUT)util/*-flex* \ + $(call QUIET_CLEAN, core-progs) $(RM) $(ALL_PROGRAMS) perf perf-read-vdso= 32 \ + perf-read-vdsox32 $(OUTPUT)$(LIBJVMTI).so + $(call QUIET_CLEAN, core-gen) $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo= \ + $(OUTPUT)common-cmds.h TAGS tags cscope* $(OUTPUT)PERF-VERSION-FILE \ + $(OUTPUT)FEATURE-DUMP $(OUTPUT)util/*-bison* $(OUTPUT)util/*-flex* \ $(OUTPUT)util/intel-pt-decoder/inat-tables.c \ $(OUTPUT)tests/llvm-src-{base,kbuild,prologue,relocation}.c \ $(OUTPUT)pmu-events/pmu-events.c \ --=20 2.45.2.741.gdbec12cfda-goog From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A18117E8E4 for ; Tue, 25 Jun 2024 21:41:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351687; cv=none; b=QBfIkMjqNJv7bm9LDEyimedF3om3uC9ttWDVkatQ3niXy2hMJxZZMFNfg1YTcQW4xnjsRZKzACjYm5Wa6fJw2SnHrH5d8nK/iL81Rl5JYktFNVDS1yX68VGXdV6c0XyGnW8gUv7HnK+W54nK3hNnmPXNswiekgoy6zHRD/REBtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351687; c=relaxed/simple; bh=XCcoFDUSO68+IaAjxY0zcTXTu1PIqW7TvqckZysWY14=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=aoYSdgIlTJWowqAo/zgLb10m69jNhiAa23Fne/pX1aXXzsls9p6lXGAB0fV5e8A+z9VKrYoeKLHxXQAwIybX636YkxvSpKjKkiR49WZb1ZQd8PIAid8/hCbRmlV/0BO6ZtK+J3dEU6t2i2fWWr9uubLZG+Y/QTHQ06K84tFTWNo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=EQeV/X1u; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="EQeV/X1u" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dfefc2c8569so12034089276.3 for ; Tue, 25 Jun 2024 14:41:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351685; x=1719956485; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=nNKhk3i6ZR127Ku5IVQOBYSjQPa/zZMsU20LfXii9LU=; b=EQeV/X1uUyy31ZFHFCFLOMcRduSN8hsEJIOoYAjROttvDhwDlKPqfaBau4qrBrGTy4 vsIVCReGBRN8JuLI8qRxQGorNmuu4+NKVU66ROY8nn/oCZQmm2hccXOd/CamsIGnwkx4 1X3HoQCkUbqKz9/Poc8OVbMkvp3hRNwjGU/0QX5elNeXHic2sBVloFuTXn+Gl3domqAA Qza1tQBwXtnn/4J6TUMCwpspv7Tyr4QABHWL93M9JdCJoHZTrN15VPG7B8btqyfn5Iyv eoHCHJtm533z3c0SrDbu4NoE68VA7JbZ5L57z20lRL+U2UM37pXl9jBSkfqzL5kBJkqE aWBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351685; x=1719956485; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nNKhk3i6ZR127Ku5IVQOBYSjQPa/zZMsU20LfXii9LU=; b=J/uFd8WLGuIhClIp6x/eGLqawUGMyn6Rwald6MwK9GTRBG9nSAkUthOM40gZACXg2P lgCyOXMn3jtcPsTtZgsQsyHt+OBCKbv0MwXSIHZMCpXF3sTHGtjlFY6uSZyvJM9ZhUNq iRN+5sgRcGOrVPfw50tDwVkJ2RHp3p0WEo2CGdjvr7IxtwmZqOQckdNf4qutBb7pwxzd c+SnxvXmuD1sME7vTCj57WpvUuME5UT3dvhvmlN4r0VcIdTEva2eyVZ0MdCMKXQ2VgDN 0P4CZytvzXokShn7nrLgnv6Bl82LJlgEqIasVGqi9V8va4ayI6pvz9fJXiwByeFKYU9j ue+Q== X-Forwarded-Encrypted: i=1; AJvYcCXCJllIUfpp+QsM5z5GHCmfiuiAS8u969B0hvqSULpg3GjC7pq7IxDjb978/W5O6x9E/tPkmjH95ckXOW73dsrDOzBx2F8nriIpV+RN X-Gm-Message-State: AOJu0YzQGup/9uIcjpkJYecUBTm0ri9ONbB/tMAQeZVZ06LZ9THIG5Tx NfMWW96xMeMS+lfh0QS7YVdZBJODG6gdnPx/afy6UZJvc+EcSXvE8AG5aoh00gmrNJAf0KrEEmn ifqgq/Q== X-Google-Smtp-Source: AGHT+IE+D2HalyQ6pQIV4aC4dnh0NFJgmZWKr3iLPBEr7yE5ihEHg9ErrPWEv3Oai+b0CrXRW2IiX89XKhUd X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a25:3625:0:b0:dfd:d6ec:4e3b with SMTP id 3f1490d57ef6-e0303f2b228mr156445276.7.1719351685334; Tue, 25 Jun 2024 14:41:25 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:11 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-3-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 2/8] perf ui: Make ui its own library From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make the ui 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 Reviewed-by: James Clark --- tools/perf/Build | 2 +- tools/perf/Makefile.perf | 10 ++++++++++ tools/perf/ui/Build | 18 +++++++++--------- tools/perf/ui/browsers/Build | 14 +++++++------- tools/perf/ui/tui/Build | 8 ++++---- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index b0cb7ad8e6ac..16ed1357202b 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -55,7 +55,7 @@ CFLAGS_builtin-report.o +=3D -DDOCDIR=3D"BUILD_STR($(s= rcdir_SQ)/Documentation)" =20 perf-y +=3D util/ perf-y +=3D arch/ -perf-y +=3D ui/ +perf-ui-y +=3D ui/ perf-y +=3D scripts/ =20 gtk-y +=3D ui/gtk/ diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index acc41a6717db..c5a027381c55 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -425,10 +425,14 @@ endif =20 export PERL_PATH =20 +LIBPERF_UI_IN :=3D $(OUTPUT)perf-ui-in.o +LIBPERF_UI :=3D $(OUTPUT)libperf-ui.a + PERFLIBS =3D $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYMBOL) ifdef LIBBPF_STATIC PERFLIBS +=3D $(LIBBPF) endif +PERFLIBS +=3D $(LIBPERF_UI) =20 # We choose to avoid "if .. else if .. else .. endif endif" # because maintaining the nesting to match is a pain. If @@ -729,6 +733,12 @@ $(PERF_IN): prepare FORCE $(PMU_EVENTS_IN): FORCE prepare $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=3Dpmu-events obj= =3Dpmu-events =20 +$(LIBPERF_UI_IN): FORCE prepare + $(Q)$(MAKE) $(build)=3Dperf-ui + +$(LIBPERF_UI): $(LIBPERF_UI_IN) + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< + $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) \ $(PERF_IN) $(PMU_EVENTS_IN) $(LIBS) -o $@ diff --git a/tools/perf/ui/Build b/tools/perf/ui/Build index 6b6d7143a37b..d2ecd9290600 100644 --- a/tools/perf/ui/Build +++ b/tools/perf/ui/Build @@ -1,12 +1,12 @@ -perf-y +=3D setup.o -perf-y +=3D helpline.o -perf-y +=3D progress.o -perf-y +=3D util.o -perf-y +=3D hist.o -perf-y +=3D stdio/hist.o +perf-ui-y +=3D setup.o +perf-ui-y +=3D helpline.o +perf-ui-y +=3D progress.o +perf-ui-y +=3D util.o +perf-ui-y +=3D hist.o +perf-ui-y +=3D stdio/hist.o =20 CFLAGS_setup.o +=3D -DLIBDIR=3D"BUILD_STR($(LIBDIR))" =20 -perf-$(CONFIG_SLANG) +=3D browser.o -perf-$(CONFIG_SLANG) +=3D browsers/ -perf-$(CONFIG_SLANG) +=3D tui/ +perf-ui-$(CONFIG_SLANG) +=3D browser.o +perf-ui-$(CONFIG_SLANG) +=3D browsers/ +perf-ui-$(CONFIG_SLANG) +=3D tui/ diff --git a/tools/perf/ui/browsers/Build b/tools/perf/ui/browsers/Build index 2608b5da3167..a07489e44765 100644 --- a/tools/perf/ui/browsers/Build +++ b/tools/perf/ui/browsers/Build @@ -1,7 +1,7 @@ -perf-y +=3D annotate.o -perf-y +=3D annotate-data.o -perf-y +=3D hists.o -perf-y +=3D map.o -perf-y +=3D scripts.o -perf-y +=3D header.o -perf-y +=3D res_sample.o +perf-ui-y +=3D annotate.o +perf-ui-y +=3D annotate-data.o +perf-ui-y +=3D hists.o +perf-ui-y +=3D map.o +perf-ui-y +=3D scripts.o +perf-ui-y +=3D header.o +perf-ui-y +=3D res_sample.o diff --git a/tools/perf/ui/tui/Build b/tools/perf/ui/tui/Build index f916df33a1a7..2ac058ad1a61 100644 --- a/tools/perf/ui/tui/Build +++ b/tools/perf/ui/tui/Build @@ -1,4 +1,4 @@ -perf-y +=3D setup.o -perf-y +=3D util.o -perf-y +=3D helpline.o -perf-y +=3D progress.o +perf-ui-y +=3D setup.o +perf-ui-y +=3D util.o +perf-ui-y +=3D helpline.o +perf-ui-y +=3D progress.o --=20 2.45.2.741.gdbec12cfda-goog From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFEE617F376 for ; Tue, 25 Jun 2024 21:41:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351690; cv=none; b=j/QsvUhmxbslQKKM2JcrRt3smjwSu90tzdQb+k7ul6tjgjCewXsQUegpoDNhtXC6TKRRC4SfUHHiPwACaX+p535jAhvx3J+QDeXo0E5QP3D4dGHI+ltsieswZlzR0KD0z9mSb2hlInOAe9ItzJw4Q3tG9kwI3Ku1okYajOqVw90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351690; c=relaxed/simple; bh=bwtLI3Jcufku622sK4AUh1VaGsI4g/AsTLwYxdou9H8=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=YL+IRmazIAZrMOVOsvBmYaZt5hq4D6TEmpXmtoC7TgsZLHrK7ER+CiJ4xWYj9kJa14GO7hhz5DOuH1AKde7hV3kkiUF+thhMFSFHlh826ddRbDK/cYsU+8FuZSM3pQoZRQ6W8zC7c10U31C0GRQq2d+g7Ey9HfloAVq4cW+ZP7E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=q2Uj6hFL; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="q2Uj6hFL" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-6438cfe5af9so78722937b3.0 for ; Tue, 25 Jun 2024 14:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351688; x=1719956488; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=9jtxp0mR0wazQJ0QHy8snlQ9f7IXPyviJrJGWoRkeF4=; b=q2Uj6hFLsAdKOeELndGjConhoS658D28BYTFM9GQ9ACQIkdIayNhca5+Rv+gMbwQIL L8+Dxcc19/3B5GKr1KiRQetPeWJ01ssnQrjDKC5TtSM6IM4ciqxKqzKrPgE3xxWTAlUF aeR/eytXAeJFVXR0X9wWlyVTRHlIIZb4WyyOv+I4C1mEcFcenFzya6tyBsnS/3a0dSYD o9sTwZTDoWQaetIZL86YBn545XGfFbi2EHWzv+i1y1Xk8OFY/DYyLHwmSnO65YiahLto 4vXBYNIK2uVeqjYmj9jcNpIJqxO+8z1D1+kDaB+3MXmA5N67kYhLtiTOJVxoqigQoLyV sKvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351688; x=1719956488; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9jtxp0mR0wazQJ0QHy8snlQ9f7IXPyviJrJGWoRkeF4=; b=YGw3UHu1r3ln095IHbqw8AvFffs9cFRMtSpOLZxRecOd20eWPmn0SShGaeNO5tHUyQ t4aJSbi8mITXjNn/i5EgT2GRhzQM0opPLUjvO45KbYcFEDniAILdQYb0bcHkEGRB7MMS LmYLtKlQWh/Vy4/luNTrXQlQho2iDWpe1PLNpg7B5OHxiKm2LkJhIMc0iwp3zWSz/cc8 6+lstCrYwOSBevxOs/KBh6XU0TIYZ1sWd+zap7l2sdl7q2tKxG7ltPC2yVGhjvvAOqUK j49Tnksc0EPU015Yd69nARKra/zCkRrU7CUqM8/LjCoY7oUlERu/34k7XyFY3vtA1JWM gwnw== X-Forwarded-Encrypted: i=1; AJvYcCVuGfqY9Wj84nTzEw5o91rvKMPRz4NUkZ9pAZ+N6SGpHy9Ka+yCN7yxyHP+59+tCvkZkN4FF4sBcPZU7t80JPewzmN0VVO95AjjHTQx X-Gm-Message-State: AOJu0Yym/E9nsOIuRdMGu2FCraudTM1PU20rGOplp3EkkGn9INFr5S8f V8BDLSwidb9O9wYsTxhCQKpvCNV3gjmrKrylZ9rzXGt/zh0WEVMEJtFI5B+Nkls0r5f889sdlz5 Wcz7nVA== X-Google-Smtp-Source: AGHT+IEqpHMY/PPtc0hzBnoY6UQPAQ6fP/kxnOlvyQiEDGBFgD3xE956igXL9erX+1EydnCMwNQI2cg/pyd/ X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a25:d6d0:0:b0:dff:2f78:a5d7 with SMTP id 3f1490d57ef6-e0303edb955mr134350276.5.1719351687643; Tue, 25 Jun 2024 14:41:27 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:12 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-4-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 3/8] perf pmu-events: Make pmu-events a library From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make pmu-events into a library so it may be linked against things like the python module and not built from source. Signed-off-by: Ian Rogers Reviewed-by: James Clark --- tools/perf/Makefile.perf | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index c5a027381c55..9640c6ae1837 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -428,11 +428,14 @@ export PERL_PATH LIBPERF_UI_IN :=3D $(OUTPUT)perf-ui-in.o LIBPERF_UI :=3D $(OUTPUT)libperf-ui.a =20 +LIBPMU_EVENTS_IN :=3D $(OUTPUT)pmu-events/pmu-events-in.o +LIBPMU_EVENTS :=3D $(OUTPUT)libpmu-events.a + PERFLIBS =3D $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYMBOL) ifdef LIBBPF_STATIC PERFLIBS +=3D $(LIBBPF) endif -PERFLIBS +=3D $(LIBPERF_UI) +PERFLIBS +=3D $(LIBPERF_UI) $(LIBPMU_EVENTS) =20 # We choose to avoid "if .. else if .. else .. endif endif" # because maintaining the nesting to match is a pain. If @@ -721,8 +724,6 @@ strip: $(PROGRAMS) $(OUTPUT)perf $(STRIP) $(STRIP_OPTS) $(PROGRAMS) $(OUTPUT)perf =20 PERF_IN :=3D $(OUTPUT)perf-in.o - -PMU_EVENTS_IN :=3D $(OUTPUT)pmu-events/pmu-events-in.o export NO_JEVENTS =20 build :=3D -f $(srctree)/tools/build/Makefile.build dir=3D. obj @@ -730,18 +731,21 @@ build :=3D -f $(srctree)/tools/build/Makefile.build d= ir=3D. obj $(PERF_IN): prepare FORCE $(Q)$(MAKE) $(build)=3Dperf =20 -$(PMU_EVENTS_IN): FORCE prepare +$(LIBPMU_EVENTS_IN): FORCE prepare $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=3Dpmu-events obj= =3Dpmu-events =20 +$(LIBPMU_EVENTS): $(LIBPMU_EVENTS_IN) + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< + $(LIBPERF_UI_IN): FORCE prepare $(Q)$(MAKE) $(build)=3Dperf-ui =20 $(LIBPERF_UI): $(LIBPERF_UI_IN) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< =20 -$(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) +$(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) \ - $(PERF_IN) $(PMU_EVENTS_IN) $(LIBS) -o $@ + $(PERF_IN) $(LIBS) -o $@ =20 $(GTK_IN): FORCE prepare $(Q)$(MAKE) $(build)=3Dgtk --=20 2.45.2.741.gdbec12cfda-goog From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 37E9A17F4E8 for ; Tue, 25 Jun 2024 21:41:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351693; cv=none; b=GU284a+qTPGu/V0kcmJRLjuCPHCauMRDqI0fQ2GdoV3nauAjEibBoxvzA8dtfV2BX9x7RlzXX2YapOek8k8fbI1y8ywypogVMzncntECkzgDfuOkrymlu66HFisNWZqColW6FoGM6+Yv2GZO8dsWrx62kSN/cyKYWoWkfaD+WmE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351693; c=relaxed/simple; bh=N5E4meGJMW6NrkK2/H6Z1wvt8B2rm7TZLxu23z7djY0=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=SKWeLY8fqSXC5VJKKEB1+Xov1OfgzsUWubSxykqo5CJackMg9ZPiHd66M6B90wnyUNdJ6gNHdfYrFgu6GGC2ex2uNpBN+/hdJf1hcDNGaC64zMC4XIQ8GFeajmuoOaDaqzhNg/pLYECqrlGS59b0LK+Z5XBFhuaEg6a8tkb8BX8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=B1ra5N+h; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="B1ra5N+h" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-62f3c5f5bf7so115675407b3.0 for ; Tue, 25 Jun 2024 14:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351690; x=1719956490; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=INYs1zZMYGf3GJdIHQS7QZYH+KY4EsCuofnbdRJz94s=; b=B1ra5N+hLrVllYZ7rKRgBonmck1230HmnDmeb2Phjcd6Sx9msYOS7S6XilefnlSz3x Ag4eODkL7Oodx6ctxHVuzcuoz59yEeHnBLyHAFXQEAQuQl9AafDKjCOBIx/q33hzRO2d eLRZUerOcWNbIcujoDgjdZ6gubIJnUAnim6NvuTbLCisRaxK/OihSZKUk6b8bK7w5zZc 3RrnxgAk9fd6f+AUa1NTAZNzYRdDLSryQENbejm6iRuHaN0C5XBIUrjWDxeN6LSx4kti H7TWviGMJYDL6NNzHkDRQzqD0225GvC5aiMoODO4VhX1/HXoKFYJ/1lCcnXrTiF0BW0t 4dnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351690; x=1719956490; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=INYs1zZMYGf3GJdIHQS7QZYH+KY4EsCuofnbdRJz94s=; b=C0ByXae0w9yQnnVbSR0I1AM6C8iOn0mDEc/eZqRGxSl63m2GMKwUhUErMaq5Q11fdc LWiAs1Q2pBUmUXRmvBXyagSFawpHSTcD0s5i/xrLCeKvjR1KCEciMlhnKVpDyGI2WXeF OfOkvufYy4EQr5hjFClRFdC7a1nl+ABN18vS9ISvVvpvqL2nCEJAf2vJnA9zZbgI98iL UYqxNTVNyiBAkAEwXFLj8dQo0aZWz38pUd5GcVrxM2vivr9okkI6a7wPYqvYvhjJuSLX 0pkw1Fn63V0p1PSHF+3Pjcw1oubeI+Bnuma5gRpRH6GFBYIcHdhQe1ujOc+E9daCwAEX RQIw== X-Forwarded-Encrypted: i=1; AJvYcCXuumcLFDc9q9587icTpTp5jq0eGX4bx0UzOxqQYyBAG56M//gHSca1SYA9n5MPi+j3q5Ix75ObzQGuKq0cKbqh6UddjBNmgeZmsTLZ X-Gm-Message-State: AOJu0YxjbSxak9rE4zd7uX9R6kLsh7ZUbc4a7hIPEplpRkK9c6vt+/wr rBv2Lst4lhbxhh51yS+/pCI+/tXP7+y5d7mLV5yCBqqKjbCw0q8ljWEt60f7+VZlob4y4UfQ66a q88BqUg== X-Google-Smtp-Source: AGHT+IHPxZ7oFki0wKXm1Ojg17eP9+EpGxLD91CDs2nofmwHlRl/j1sO/3iFyY0f4f33vVVWsbk0rgBN/xFY X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a05:6902:1208:b0:e02:d657:61c8 with SMTP id 3f1490d57ef6-e02fc4363edmr53093276.7.1719351690063; Tue, 25 Jun 2024 14:41:30 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:13 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-5-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 4/8] perf test: Make tests its own library From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: James Clark --- tools/perf/Build | 3 +- tools/perf/Makefile.perf | 11 ++- tools/perf/arch/Build | 1 + tools/perf/arch/arm/Build | 2 +- tools/perf/arch/arm/tests/Build | 8 +- tools/perf/arch/arm64/Build | 2 +- tools/perf/arch/arm64/tests/Build | 8 +- tools/perf/arch/powerpc/Build | 2 +- tools/perf/arch/powerpc/tests/Build | 6 +- tools/perf/arch/x86/Build | 4 +- tools/perf/arch/x86/tests/Build | 20 ++-- tools/perf/tests/Build | 140 ++++++++++++++-------------- tools/perf/tests/workloads/Build | 12 +-- 13 files changed, 115 insertions(+), 104 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index 16ed1357202b..fddd45ab35b4 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -36,7 +36,7 @@ endif perf-$(CONFIG_LIBELF) +=3D builtin-probe.o =20 perf-y +=3D bench/ -perf-y +=3D tests/ +perf-test-y +=3D tests/ =20 perf-y +=3D perf.o =20 @@ -55,6 +55,7 @@ CFLAGS_builtin-report.o +=3D -DDOCDIR=3D"BUILD_STR($(s= rcdir_SQ)/Documentation)" =20 perf-y +=3D util/ perf-y +=3D arch/ +perf-test-y +=3D arch/ perf-ui-y +=3D ui/ perf-y +=3D scripts/ =20 diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 9640c6ae1837..9fa69dd0b472 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -425,6 +425,9 @@ endif =20 export PERL_PATH =20 +LIBPERF_TEST_IN :=3D $(OUTPUT)perf-test-in.o +LIBPERF_TEST :=3D $(OUTPUT)libperf-test.a + LIBPERF_UI_IN :=3D $(OUTPUT)perf-ui-in.o LIBPERF_UI :=3D $(OUTPUT)libperf-ui.a =20 @@ -435,7 +438,7 @@ PERFLIBS =3D $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYM= BOL) ifdef LIBBPF_STATIC PERFLIBS +=3D $(LIBBPF) endif -PERFLIBS +=3D $(LIBPERF_UI) $(LIBPMU_EVENTS) +PERFLIBS +=3D $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVENTS) =20 # 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 $@ $< =20 +$(LIBPERF_TEST_IN): FORCE prepare + $(Q)$(MAKE) $(build)=3Dperf-test + +$(LIBPERF_TEST): $(LIBPERF_TEST_IN) + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< + $(LIBPERF_UI_IN): FORCE prepare $(Q)$(MAKE) $(build)=3Dperf-ui =20 diff --git a/tools/perf/arch/Build b/tools/perf/arch/Build index 688818844c11..6dd68c17924c 100644 --- a/tools/perf/arch/Build +++ b/tools/perf/arch/Build @@ -1,2 +1,3 @@ perf-y +=3D common.o perf-y +=3D $(SRCARCH)/ +perf-test-y +=3D $(SRCARCH)/ diff --git a/tools/perf/arch/arm/Build b/tools/perf/arch/arm/Build index 36222e64bbf7..6b4fdec52122 100644 --- a/tools/perf/arch/arm/Build +++ b/tools/perf/arch/arm/Build @@ -1,2 +1,2 @@ perf-y +=3D util/ -perf-$(CONFIG_DWARF_UNWIND) +=3D tests/ +perf-test-$(CONFIG_DWARF_UNWIND) +=3D tests/ diff --git a/tools/perf/arch/arm/tests/Build b/tools/perf/arch/arm/tests/Bu= ild index bc8e97380c82..599efa545727 100644 --- a/tools/perf/arch/arm/tests/Build +++ b/tools/perf/arch/arm/tests/Build @@ -1,5 +1,5 @@ -perf-y +=3D regs_load.o -perf-y +=3D dwarf-unwind.o -perf-y +=3D vectors-page.o +perf-test-y +=3D regs_load.o +perf-test-y +=3D dwarf-unwind.o +perf-test-y +=3D vectors-page.o =20 -perf-y +=3D arch-tests.o +perf-test-y +=3D arch-tests.o diff --git a/tools/perf/arch/arm64/Build b/tools/perf/arch/arm64/Build index a7dd46a5b678..58b2d965ed86 100644 --- a/tools/perf/arch/arm64/Build +++ b/tools/perf/arch/arm64/Build @@ -1,2 +1,2 @@ perf-y +=3D util/ -perf-y +=3D tests/ +perf-test-y +=3D tests/ diff --git a/tools/perf/arch/arm64/tests/Build b/tools/perf/arch/arm64/test= s/Build index e337c09e7f56..d44c9de92d42 100644 --- a/tools/perf/arch/arm64/tests/Build +++ b/tools/perf/arch/arm64/tests/Build @@ -1,5 +1,5 @@ -perf-y +=3D regs_load.o -perf-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o +perf-test-y +=3D regs_load.o +perf-test-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o =20 -perf-y +=3D arch-tests.o -perf-y +=3D cpuid-match.o +perf-test-y +=3D arch-tests.o +perf-test-y +=3D cpuid-match.o diff --git a/tools/perf/arch/powerpc/Build b/tools/perf/arch/powerpc/Build index a7dd46a5b678..58b2d965ed86 100644 --- a/tools/perf/arch/powerpc/Build +++ b/tools/perf/arch/powerpc/Build @@ -1,2 +1,2 @@ perf-y +=3D util/ -perf-y +=3D tests/ +perf-test-y +=3D tests/ diff --git a/tools/perf/arch/powerpc/tests/Build b/tools/perf/arch/powerpc/= tests/Build index 3526ab0af9f9..275026950645 100644 --- a/tools/perf/arch/powerpc/tests/Build +++ b/tools/perf/arch/powerpc/tests/Build @@ -1,4 +1,4 @@ -perf-$(CONFIG_DWARF_UNWIND) +=3D regs_load.o -perf-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o +perf-test-$(CONFIG_DWARF_UNWIND) +=3D regs_load.o +perf-test-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o =20 -perf-y +=3D arch-tests.o +perf-test-y +=3D arch-tests.o diff --git a/tools/perf/arch/x86/Build b/tools/perf/arch/x86/Build index ed37013b4289..132cf8beaca2 100644 --- a/tools/perf/arch/x86/Build +++ b/tools/perf/arch/x86/Build @@ -1,5 +1,5 @@ perf-y +=3D util/ -perf-y +=3D tests/ +perf-test-y +=3D tests/ =20 ifdef SHELLCHECK SHELL_TESTS :=3D 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) =20 -perf-y +=3D $(TEST_LOGS) +perf-test-y +=3D $(TEST_LOGS) diff --git a/tools/perf/arch/x86/tests/Build b/tools/perf/arch/x86/tests/Bu= ild index c1e3b7d39554..3227053f3355 100644 --- a/tools/perf/arch/x86/tests/Build +++ b/tools/perf/arch/x86/tests/Build @@ -1,15 +1,15 @@ -perf-$(CONFIG_DWARF_UNWIND) +=3D regs_load.o -perf-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o +perf-test-$(CONFIG_DWARF_UNWIND) +=3D regs_load.o +perf-test-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o =20 -perf-y +=3D arch-tests.o -perf-y +=3D sample-parsing.o -perf-y +=3D hybrid.o -perf-$(CONFIG_AUXTRACE) +=3D intel-pt-test.o +perf-test-y +=3D arch-tests.o +perf-test-y +=3D sample-parsing.o +perf-test-y +=3D hybrid.o +perf-test-$(CONFIG_AUXTRACE) +=3D intel-pt-test.o ifeq ($(CONFIG_EXTRA_TESTS),y) -perf-$(CONFIG_AUXTRACE) +=3D insn-x86.o +perf-test-$(CONFIG_AUXTRACE) +=3D insn-x86.o endif -perf-$(CONFIG_X86_64) +=3D bp-modify.o -perf-y +=3D amd-ibs-via-core-pmu.o +perf-test-$(CONFIG_X86_64) +=3D bp-modify.o +perf-test-y +=3D amd-ibs-via-core-pmu.o =20 ifdef SHELLCHECK SHELL_TESTS :=3D 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) =20 -perf-y +=3D $(TEST_LOGS) +perf-test-y +=3D $(TEST_LOGS) diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build index c7f9d9676095..5671ee530019 100644 --- a/tools/perf/tests/Build +++ b/tools/perf/tests/Build @@ -1,82 +1,82 @@ # SPDX-License-Identifier: GPL-2.0 =20 -perf-y +=3D builtin-test.o -perf-y +=3D tests-scripts.o -perf-y +=3D parse-events.o -perf-y +=3D dso-data.o -perf-y +=3D attr.o -perf-y +=3D vmlinux-kallsyms.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall-all-cpus.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall-tp-fields.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D mmap-basic.o -perf-y +=3D perf-record.o -perf-y +=3D evsel-roundtrip-name.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D evsel-tp-sched.o -perf-y +=3D fdarray.o -perf-y +=3D pmu.o -perf-y +=3D pmu-events.o -perf-y +=3D hists_common.o -perf-y +=3D hists_link.o -perf-y +=3D hists_filter.o -perf-y +=3D hists_output.o -perf-y +=3D hists_cumulate.o -perf-y +=3D python-use.o -perf-y +=3D bp_signal.o -perf-y +=3D bp_signal_overflow.o -perf-y +=3D bp_account.o -perf-y +=3D wp.o -perf-y +=3D task-exit.o -perf-y +=3D sw-clock.o -perf-y +=3D mmap-thread-lookup.o -perf-y +=3D thread-maps-share.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D switch-tracking.o -perf-y +=3D keep-tracking.o -perf-y +=3D code-reading.o -perf-y +=3D sample-parsing.o -perf-y +=3D parse-no-sample-id-all.o -perf-y +=3D kmod-path.o -perf-y +=3D thread-map.o -perf-y +=3D topology.o -perf-y +=3D mem.o -perf-y +=3D cpumap.o -perf-y +=3D stat.o -perf-y +=3D event_update.o -perf-y +=3D event-times.o -perf-y +=3D expr.o -perf-y +=3D backward-ring-buffer.o -perf-y +=3D sdt.o -perf-y +=3D is_printable_array.o -perf-y +=3D bitmap.o -perf-y +=3D perf-hooks.o -perf-y +=3D unit_number__scnprintf.o -perf-y +=3D mem2node.o -perf-y +=3D maps.o -perf-y +=3D time-utils-test.o -perf-y +=3D genelf.o -perf-y +=3D api-io.o -perf-y +=3D demangle-java-test.o -perf-y +=3D demangle-ocaml-test.o -perf-y +=3D pfm.o -perf-y +=3D parse-metric.o -perf-y +=3D pe-file-parsing.o -perf-y +=3D expand-cgroup.o -perf-y +=3D perf-time-to-tsc.o -perf-y +=3D dlfilter-test.o -perf-y +=3D sigtrap.o -perf-y +=3D event_groups.o -perf-y +=3D symbols.o -perf-y +=3D util.o +perf-test-y +=3D builtin-test.o +perf-test-y +=3D tests-scripts.o +perf-test-y +=3D parse-events.o +perf-test-y +=3D dso-data.o +perf-test-y +=3D attr.o +perf-test-y +=3D vmlinux-kallsyms.o +perf-test-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall.o +perf-test-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall-all-cpus.o +perf-test-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall-tp-fields.o +perf-test-$(CONFIG_LIBTRACEEVENT) +=3D mmap-basic.o +perf-test-y +=3D perf-record.o +perf-test-y +=3D evsel-roundtrip-name.o +perf-test-$(CONFIG_LIBTRACEEVENT) +=3D evsel-tp-sched.o +perf-test-y +=3D fdarray.o +perf-test-y +=3D pmu.o +perf-test-y +=3D pmu-events.o +perf-test-y +=3D hists_common.o +perf-test-y +=3D hists_link.o +perf-test-y +=3D hists_filter.o +perf-test-y +=3D hists_output.o +perf-test-y +=3D hists_cumulate.o +perf-test-y +=3D python-use.o +perf-test-y +=3D bp_signal.o +perf-test-y +=3D bp_signal_overflow.o +perf-test-y +=3D bp_account.o +perf-test-y +=3D wp.o +perf-test-y +=3D task-exit.o +perf-test-y +=3D sw-clock.o +perf-test-y +=3D mmap-thread-lookup.o +perf-test-y +=3D thread-maps-share.o +perf-test-$(CONFIG_LIBTRACEEVENT) +=3D switch-tracking.o +perf-test-y +=3D keep-tracking.o +perf-test-y +=3D code-reading.o +perf-test-y +=3D sample-parsing.o +perf-test-y +=3D parse-no-sample-id-all.o +perf-test-y +=3D kmod-path.o +perf-test-y +=3D thread-map.o +perf-test-y +=3D topology.o +perf-test-y +=3D mem.o +perf-test-y +=3D cpumap.o +perf-test-y +=3D stat.o +perf-test-y +=3D event_update.o +perf-test-y +=3D event-times.o +perf-test-y +=3D expr.o +perf-test-y +=3D backward-ring-buffer.o +perf-test-y +=3D sdt.o +perf-test-y +=3D is_printable_array.o +perf-test-y +=3D bitmap.o +perf-test-y +=3D perf-hooks.o +perf-test-y +=3D unit_number__scnprintf.o +perf-test-y +=3D mem2node.o +perf-test-y +=3D maps.o +perf-test-y +=3D time-utils-test.o +perf-test-y +=3D genelf.o +perf-test-y +=3D api-io.o +perf-test-y +=3D demangle-java-test.o +perf-test-y +=3D demangle-ocaml-test.o +perf-test-y +=3D pfm.o +perf-test-y +=3D parse-metric.o +perf-test-y +=3D pe-file-parsing.o +perf-test-y +=3D expand-cgroup.o +perf-test-y +=3D perf-time-to-tsc.o +perf-test-y +=3D dlfilter-test.o +perf-test-y +=3D sigtrap.o +perf-test-y +=3D event_groups.o +perf-test-y +=3D symbols.o +perf-test-y +=3D util.o =20 ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 arm arm64 powerpc)) -perf-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o +perf-test-$(CONFIG_DWARF_UNWIND) +=3D dwarf-unwind.o endif =20 CFLAGS_attr.o +=3D -DBINDIR=3D"BUILD_STR($(bindir_SQ))" -DPYTHON= =3D"BUILD_STR($(PYTHON_WORD))" CFLAGS_python-use.o +=3D -DPYTHONPATH=3D"BUILD_STR($(OUTPUT)python)" -DP= YTHON=3D"BUILD_STR($(PYTHON_WORD))" CFLAGS_dwarf-unwind.o +=3D -fno-optimize-sibling-calls =20 -perf-y +=3D workloads/ +perf-test-y +=3D workloads/ =20 ifdef SHELLCHECK SHELL_TESTS :=3D $(shell find tests/shell -executable -type f -name '*.s= h') @@ -90,4 +90,4 @@ $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 -perf-y +=3D $(TEST_LOGS) +perf-test-y +=3D $(TEST_LOGS) diff --git a/tools/perf/tests/workloads/Build b/tools/perf/tests/workloads/= Build index a1f34d5861e3..48bf0d3b0f3d 100644 --- a/tools/perf/tests/workloads/Build +++ b/tools/perf/tests/workloads/Build @@ -1,11 +1,11 @@ # SPDX-License-Identifier: GPL-2.0 =20 -perf-y +=3D noploop.o -perf-y +=3D thloop.o -perf-y +=3D leafloop.o -perf-y +=3D sqrtloop.o -perf-y +=3D brstack.o -perf-y +=3D datasym.o +perf-test-y +=3D noploop.o +perf-test-y +=3D thloop.o +perf-test-y +=3D leafloop.o +perf-test-y +=3D sqrtloop.o +perf-test-y +=3D brstack.o +perf-test-y +=3D datasym.o =20 CFLAGS_sqrtloop.o =3D -g -O0 -fno-inline -U_FORTIFY_SOURCE CFLAGS_leafloop.o =3D -g -O0 -fno-inline -fno-omit-frame-pointer -= U_FORTIFY_SOURCE --=20 2.45.2.741.gdbec12cfda-goog From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 515A717E45D for ; Tue, 25 Jun 2024 21:41:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351696; cv=none; b=YdjyrrRCwqrOm1XIPHOD8/oQHpB5nRVfulzbcG6rgL555bRWzqP7idnPQLsQ4sZ96a83uHwlYQOWOyYfVMC4d6LPAf7KzYg+1hYwTqVO0F5MhZX0SSwucFxs5g5GoLqjTskqb8DEjCisZa/IfW6M+IDV1FBBMLB4uRZvUR9F9rY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351696; c=relaxed/simple; bh=2e1EB2J3C8Egr2O0Wpv7tQqwFPOyq60QZb+RTxrA24g=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=ef/r/YhOGZCs58nxTUH172gJIzCz6tLML8veqGIaWpL59WMkv0RthgjEcKc9pkU7/JHgR4Z4t4M9ayKQ3bRbTX3JDW0kghYiMOhYaPB48o7esUbHdnpIhDZb0leoHMZjKcPDRbAMx9X0cPPTxrPXEJxDY78Vy5oRP9s3Ggx5sB8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=d/5U2QH0; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="d/5U2QH0" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dff1bcbc104so10668189276.2 for ; Tue, 25 Jun 2024 14:41:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351692; x=1719956492; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=9lVzQaHUCF35to8PiObGttFlDy1f8wM6DLCbP51DQFE=; b=d/5U2QH0s68BbLlEo3cWpzspU1e7UsfjnpjzxYu3hbBRYIcao9TOGHzTzhZd5VbRMO 70fZhUmoO1ZDhIbitGONq/X7gUoeFSXbiHV6aF5+UaU3Dy5/R5zDDHSRa4jmxkNMcDTZ PLl0GNht+XBPp2E8OF/tJyPDd7SoaabhGWl/a/LoDNpx4qmAU4Gu0VnXb4SM/OPdM4UI byJjGheZxepc6/ERhvAfBu9RPMNwKUBiX6jYC/fKD/25hehGfntZao+U7PBs4bp4AVpK pPyIbh1u0pDOic8ZFO+p4bSW88bNxyKixKaLkXu/Wo+GXTb6PypBSjqPQTxsm5f53eFu uOrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351692; x=1719956492; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9lVzQaHUCF35to8PiObGttFlDy1f8wM6DLCbP51DQFE=; b=sgipFHa7Twnc+R3RAyZGE4VwNWJgpxpgXc8Q6ugqFB5W2jafusu8uH88l2CNpQko6v 4XUp1b07nj/dHIaJq6/GQ/h6QW6lFqL9Bbjtf6vg346XzJ0nATb7IfaZf5JR5KxP2FI9 bwi/hhO7WbIaCCGPBSQq2scg7YlF3KzTw/zHINA5QxNwhriBQNweLRLaVz5QRyDyokvD y2SNINq7TRsox1fkMOboGnIGzvUGH80ewyBfjU8UtDen5e2UABC8POBqhfsC+JZkQp57 OUvICKc1Blb8XiK9Anfq4/6Qwi0N/EepcU5C0UcJvxBzLp+kH+O4yCj3WRNqqCzFMaew NUFQ== X-Forwarded-Encrypted: i=1; AJvYcCVMHTulrlegYn9za+qwkWjWgq4BL0QdgZKJre/QOXz+Y7gQyOv4og91dZlKw19o3WHir+4tuWYMK5PI6EWrmS60Rcc/dMBqkWbhaATk X-Gm-Message-State: AOJu0Yz+U/2PVf+xjZgELjoHQVClLiV9k5beWcybyZ8q7lM8jtHpZ7HI caSKLUDruInpXtve8FEv1EUI8mfDmXa3LxjwMf3bFIIY0GWVTZs2XWcK1vxgc8p4WfU852w6vrT mtVRVrw== X-Google-Smtp-Source: AGHT+IEiqktqsRHMAN+mYvz7yr2VH/m55HbJlU/tORttvOZe5uxuQ/oF1k+fWMSXhb65BLgrCgHSbD9oWZSr X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a05:6902:20c5:b0:e03:2f91:b936 with SMTP id 3f1490d57ef6-e032f91babbmr10517276.10.1719351692199; Tue, 25 Jun 2024 14:41:32 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:14 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-6-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 5/8] perf bench: Make bench its own library From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: James Clark --- tools/perf/Build | 4 ++-- tools/perf/Makefile.perf | 11 +++++++++- tools/perf/bench/Build | 46 ++++++++++++++++++++-------------------- 3 files changed, 35 insertions(+), 26 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index fddd45ab35b4..2787f5630ff7 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -1,4 +1,4 @@ -perf-y +=3D builtin-bench.o +perf-bench-y +=3D builtin-bench.o perf-y +=3D builtin-annotate.o perf-y +=3D builtin-config.o perf-y +=3D builtin-diff.o @@ -35,7 +35,7 @@ endif =20 perf-$(CONFIG_LIBELF) +=3D builtin-probe.o =20 -perf-y +=3D bench/ +perf-bench-y +=3D bench/ perf-test-y +=3D tests/ =20 perf-y +=3D perf.o diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 9fa69dd0b472..4a3c000b9845 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -425,6 +425,9 @@ endif =20 export PERL_PATH =20 +LIBPERF_BENCH_IN :=3D $(OUTPUT)perf-bench-in.o +LIBPERF_BENCH :=3D $(OUTPUT)libperf-bench.a + LIBPERF_TEST_IN :=3D $(OUTPUT)perf-test-in.o LIBPERF_TEST :=3D $(OUTPUT)libperf-test.a =20 @@ -438,7 +441,7 @@ PERFLIBS =3D $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYM= BOL) ifdef LIBBPF_STATIC PERFLIBS +=3D $(LIBBPF) endif -PERFLIBS +=3D $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVENTS) +PERFLIBS +=3D $(LIBPERF_BENCH) $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVEN= TS) =20 # We choose to avoid "if .. else if .. else .. endif endif" # because maintaining the nesting to match is a pain. If @@ -740,6 +743,12 @@ $(LIBPMU_EVENTS_IN): FORCE prepare $(LIBPMU_EVENTS): $(LIBPMU_EVENTS_IN) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< =20 +$(LIBPERF_BENCH_IN): FORCE prepare + $(Q)$(MAKE) $(build)=3Dperf-bench + +$(LIBPERF_BENCH): $(LIBPERF_BENCH_IN) + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< + $(LIBPERF_TEST_IN): FORCE prepare $(Q)$(MAKE) $(build)=3Dperf-test =20 diff --git a/tools/perf/bench/Build b/tools/perf/bench/Build index c2ab30907ae7..279ab2ab4abe 100644 --- a/tools/perf/bench/Build +++ b/tools/perf/bench/Build @@ -1,25 +1,25 @@ -perf-y +=3D sched-messaging.o -perf-y +=3D sched-pipe.o -perf-y +=3D sched-seccomp-notify.o -perf-y +=3D syscall.o -perf-y +=3D mem-functions.o -perf-y +=3D futex-hash.o -perf-y +=3D futex-wake.o -perf-y +=3D futex-wake-parallel.o -perf-y +=3D futex-requeue.o -perf-y +=3D futex-lock-pi.o -perf-y +=3D epoll-wait.o -perf-y +=3D epoll-ctl.o -perf-y +=3D synthesize.o -perf-y +=3D kallsyms-parse.o -perf-y +=3D find-bit-bench.o -perf-y +=3D inject-buildid.o -perf-y +=3D evlist-open-close.o -perf-y +=3D breakpoint.o -perf-y +=3D pmu-scan.o -perf-y +=3D uprobe.o +perf-bench-y +=3D sched-messaging.o +perf-bench-y +=3D sched-pipe.o +perf-bench-y +=3D sched-seccomp-notify.o +perf-bench-y +=3D syscall.o +perf-bench-y +=3D mem-functions.o +perf-bench-y +=3D futex-hash.o +perf-bench-y +=3D futex-wake.o +perf-bench-y +=3D futex-wake-parallel.o +perf-bench-y +=3D futex-requeue.o +perf-bench-y +=3D futex-lock-pi.o +perf-bench-y +=3D epoll-wait.o +perf-bench-y +=3D epoll-ctl.o +perf-bench-y +=3D synthesize.o +perf-bench-y +=3D kallsyms-parse.o +perf-bench-y +=3D find-bit-bench.o +perf-bench-y +=3D inject-buildid.o +perf-bench-y +=3D evlist-open-close.o +perf-bench-y +=3D breakpoint.o +perf-bench-y +=3D pmu-scan.o +perf-bench-y +=3D uprobe.o =20 -perf-$(CONFIG_X86_64) +=3D mem-memcpy-x86-64-asm.o -perf-$(CONFIG_X86_64) +=3D mem-memset-x86-64-asm.o +perf-bench-$(CONFIG_X86_64) +=3D mem-memcpy-x86-64-asm.o +perf-bench-$(CONFIG_X86_64) +=3D mem-memset-x86-64-asm.o =20 -perf-$(CONFIG_NUMA) +=3D numa.o +perf-bench-$(CONFIG_NUMA) +=3D numa.o --=20 2.45.2.741.gdbec12cfda-goog From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96B5717F506 for ; Tue, 25 Jun 2024 21:41:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351698; cv=none; b=nfgInlpdi/LryyBrB5c/aZp0NoV1Tmv26zAlAFbs5G1V5wCfvTdEedEt4g2pTPwASkN7x/Ug2EfeU2G0uJl4janpPvb7fQfP1NX6gr2j/fWSRbUGBvAr3kDeZ/L4tabv8f7DRCj4k47EZE0xE0rHkVHXFoGAlD7UfPXDM+Ex6aU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351698; c=relaxed/simple; bh=thwPGDljXgnRSWdDOL+t4VhcOZp8MvwzAbb/znOGi6I=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=MhXqORh8/DmBVmPzyWq27N8Il2ORDNYVZAXMALOOZkIJKnXuN59PZVhUnwHgWpo1qnMmDk29Q6MNj2vcSmuIuuOkr/OrQuhVvIc4tsKxBnBcS+TTItxzUuYq4Z0n2oKJX+PiLDeAA+m9d59HhUU7CYnB7gnLiTtxxatDf3wNMyE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=JIyLRVfS; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="JIyLRVfS" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-62f46f56353so104359447b3.3 for ; Tue, 25 Jun 2024 14:41:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351695; x=1719956495; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=RK3JzW9xM39N/w1V/oeqY/ONEk8wOZil6KLzX7W64sM=; b=JIyLRVfSM0woMG+DOewkDEp6hNyIuGqat1Xd1cGDxp4Kws/5sIJVnwtXnP3lHCCltP Vaeq1qY4Vb2rgQWR5yCOv0IkLmmT6VtRAo37qHnUEV7G2gphWjGWzfuvME4UxTH9uFxw 4eko3ARoXPIlAdWMGow1IXBudALFP+E2/ngrEWBRyh28IXLedOG+Pr79zvggAahsc96R oU4s94G4zOobV5CpkaATibkG0lriGpgaABBPyn7bghMQKKr4XRP0YslZggW1ZChYAcnT nUVsz5rHbT5suq9VrzStIBcz3wOlWt3Rehx7ZO8aL+lFYvBlt9Ap6Z/XRHs8ISWBDwtQ L1yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351695; x=1719956495; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RK3JzW9xM39N/w1V/oeqY/ONEk8wOZil6KLzX7W64sM=; b=mkF+sbCK7Wxg6AwDR6UMDUNLvjjCvXlMrGUoredWUzW/tdlslif9nAq1eC/w+B8XIX CP4JnvdIQhIwGaTJ/zF1jzkFWT41YstYA1Aqoi2FGFclTEI2N0OFjT69xkcTT2WL8IZ+ jXf8Xo56iqru4O/54stPFJ6zh2VJmlAgIST6nDrOq6g8hEtlWX9joNhqi57VlVg1kqDi JbuaGi39wYuz/u1F4jKk7GaRU3/Yg8c4/wF/N1X65vpgzE7Qyi/qHRp/EAyyRzZ1jfC7 /yldFyxO4gtAahMyNAB9WEiwAY4Z0+Oxth5GjYp7QTSIPgSqfK/yQ3QfqUsvui/00b/X G65g== X-Forwarded-Encrypted: i=1; AJvYcCX/P/1il6KNpf3W/f5V/wT+GcIdRCcecfcWhxC5uzfZlytjdmdbjXYo56a5gWZBx4kDRImlcKLNqccpbbUogorXm7O6uoubcqqyfm2p X-Gm-Message-State: AOJu0YyNInW5NsPhge/rUWorxWwXS2kUglvU+3SBi27Z/ps+avVAo+75 zK9R+lWX+YTsNu7FwWCSjAxRMM3sBwWw0Xb8q37r04j5LU9gLjVBy0G7uUYqUW30W8a3P42MAnu 29X3jZA== X-Google-Smtp-Source: AGHT+IEa4Xxqmjr2ntkjsN583JQPjlc2fg0OgO/kE+vbQSwB6AY81hKIjTflfOwXAD6wiyOP2lyDV7c72DVI X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a05:690c:3809:b0:62c:67f4:4c4 with SMTP id 00721157ae682-6434308827bmr339467b3.7.1719351694466; Tue, 25 Jun 2024 14:41:34 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:15 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-7-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 6/8] perf util: Make util its own library From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make the util directory into its own library. This is done to avoid compiling code twice, once for the perf tool and once for the perf python module. For convenience: arch/common.c scripts/perl/Perf-Trace-Util/Context.c scripts/python/Perf-Trace-Util/Context.c are made part of this library. Signed-off-by: Ian Rogers Reviewed-by: James Clark --- tools/perf/Build | 5 +- tools/perf/Makefile.perf | 12 +- tools/perf/arch/Build | 4 +- tools/perf/arch/arm/Build | 2 +- tools/perf/arch/arm/util/Build | 10 +- tools/perf/arch/arm64/Build | 2 +- tools/perf/arch/arm64/util/Build | 20 +- tools/perf/arch/csky/Build | 2 +- tools/perf/arch/csky/util/Build | 6 +- tools/perf/arch/loongarch/Build | 2 +- tools/perf/arch/loongarch/util/Build | 8 +- tools/perf/arch/mips/Build | 2 +- tools/perf/arch/mips/util/Build | 6 +- tools/perf/arch/powerpc/Build | 2 +- tools/perf/arch/powerpc/util/Build | 24 +- tools/perf/arch/riscv/Build | 2 +- tools/perf/arch/riscv/util/Build | 8 +- tools/perf/arch/s390/Build | 2 +- tools/perf/arch/s390/util/Build | 16 +- tools/perf/arch/sh/Build | 2 +- tools/perf/arch/sh/util/Build | 2 +- tools/perf/arch/sparc/Build | 2 +- tools/perf/arch/sparc/util/Build | 2 +- tools/perf/arch/x86/Build | 2 +- tools/perf/arch/x86/util/Build | 42 +- tools/perf/arch/xtensa/Build | 2 +- tools/perf/scripts/Build | 4 +- tools/perf/scripts/perl/Perf-Trace-Util/Build | 2 +- .../perf/scripts/python/Perf-Trace-Util/Build | 2 +- tools/perf/util/Build | 394 +++++++++--------- tools/perf/util/arm-spe-decoder/Build | 2 +- tools/perf/util/cs-etm-decoder/Build | 2 +- tools/perf/util/hisi-ptt-decoder/Build | 2 +- tools/perf/util/intel-pt-decoder/Build | 2 +- tools/perf/util/perf-regs-arch/Build | 18 +- tools/perf/util/scripting-engines/Build | 4 +- 36 files changed, 316 insertions(+), 305 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index 2787f5630ff7..1d4957957d75 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -53,11 +53,12 @@ CFLAGS_builtin-trace.o +=3D -DSTRACE_GROUPS_DIR=3D"B= UILD_STR($(STRACE_GROUPS_DIR_ CFLAGS_builtin-report.o +=3D -DTIPDIR=3D"BUILD_STR($(tipdir_SQ))" CFLAGS_builtin-report.o +=3D -DDOCDIR=3D"BUILD_STR($(srcdir_SQ)/Documen= tation)" =20 -perf-y +=3D util/ +perf-util-y +=3D util/ +perf-util-y +=3D arch/ perf-y +=3D arch/ perf-test-y +=3D arch/ perf-ui-y +=3D ui/ -perf-y +=3D scripts/ +perf-util-y +=3D scripts/ =20 gtk-y +=3D ui/gtk/ =20 diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 4a3c000b9845..ff03f0431013 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -434,6 +434,9 @@ LIBPERF_TEST :=3D $(OUTPUT)libperf-test.a LIBPERF_UI_IN :=3D $(OUTPUT)perf-ui-in.o LIBPERF_UI :=3D $(OUTPUT)libperf-ui.a =20 +LIBPERF_UTIL_IN :=3D $(OUTPUT)perf-util-in.o +LIBPERF_UTIL :=3D $(OUTPUT)libperf-util.a + LIBPMU_EVENTS_IN :=3D $(OUTPUT)pmu-events/pmu-events-in.o LIBPMU_EVENTS :=3D $(OUTPUT)libpmu-events.a =20 @@ -441,7 +444,8 @@ PERFLIBS =3D $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYM= BOL) ifdef LIBBPF_STATIC PERFLIBS +=3D $(LIBBPF) endif -PERFLIBS +=3D $(LIBPERF_BENCH) $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPMU_EVEN= TS) +PERFLIBS +=3D $(LIBPERF_BENCH) $(LIBPERF_TEST) $(LIBPERF_UI) $(LIBPERF_UTI= L) +PERFLIBS +=3D $(LIBPMU_EVENTS) =20 # We choose to avoid "if .. else if .. else .. endif endif" # because maintaining the nesting to match is a pain. If @@ -761,6 +765,12 @@ $(LIBPERF_UI_IN): FORCE prepare $(LIBPERF_UI): $(LIBPERF_UI_IN) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< =20 +$(LIBPERF_UTIL_IN): FORCE prepare + $(Q)$(MAKE) $(build)=3Dperf-util + +$(LIBPERF_UTIL): $(LIBPERF_UTIL_IN) + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< + $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) \ $(PERF_IN) $(LIBS) -o $@ diff --git a/tools/perf/arch/Build b/tools/perf/arch/Build index 6dd68c17924c..f0d96a13445c 100644 --- a/tools/perf/arch/Build +++ b/tools/perf/arch/Build @@ -1,3 +1,3 @@ -perf-y +=3D common.o -perf-y +=3D $(SRCARCH)/ +perf-util-y +=3D common.o perf-test-y +=3D $(SRCARCH)/ +perf-util-y +=3D $(SRCARCH)/ diff --git a/tools/perf/arch/arm/Build b/tools/perf/arch/arm/Build index 6b4fdec52122..317425aa3712 100644 --- a/tools/perf/arch/arm/Build +++ b/tools/perf/arch/arm/Build @@ -1,2 +1,2 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ perf-test-$(CONFIG_DWARF_UNWIND) +=3D tests/ diff --git a/tools/perf/arch/arm/util/Build b/tools/perf/arch/arm/util/Build index 37fc63708966..e6dd7cd79ebd 100644 --- a/tools/perf/arch/arm/util/Build +++ b/tools/perf/arch/arm/util/Build @@ -1,8 +1,8 @@ -perf-y +=3D perf_regs.o +perf-util-y +=3D perf_regs.o =20 -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o =20 -perf-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o =20 -perf-$(CONFIG_AUXTRACE) +=3D pmu.o auxtrace.o cs-etm.o +perf-util-$(CONFIG_AUXTRACE) +=3D pmu.o auxtrace.o cs-etm.o diff --git a/tools/perf/arch/arm64/Build b/tools/perf/arch/arm64/Build index 58b2d965ed86..12ebc65ea7a3 100644 --- a/tools/perf/arch/arm64/Build +++ b/tools/perf/arch/arm64/Build @@ -1,2 +1,2 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ perf-test-y +=3D tests/ diff --git a/tools/perf/arch/arm64/util/Build b/tools/perf/arch/arm64/util/= Build index 78ef7115be3d..343ef7589a77 100644 --- a/tools/perf/arch/arm64/util/Build +++ b/tools/perf/arch/arm64/util/Build @@ -1,14 +1,14 @@ -perf-y +=3D header.o -perf-y +=3D machine.o -perf-y +=3D perf_regs.o -perf-y +=3D tsc.o -perf-y +=3D pmu.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-y +=3D header.o +perf-util-y +=3D machine.o +perf-util-y +=3D perf_regs.o +perf-util-y +=3D tsc.o +perf-util-y +=3D pmu.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o =20 -perf-$(CONFIG_AUXTRACE) +=3D ../../arm/util/pmu.o \ +perf-util-$(CONFIG_AUXTRACE) +=3D ../../arm/util/pmu.o \ ../../arm/util/auxtrace.o \ ../../arm/util/cs-etm.o \ arm-spe.o mem-events.o hisi-ptt.o diff --git a/tools/perf/arch/csky/Build b/tools/perf/arch/csky/Build index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/csky/Build +++ b/tools/perf/arch/csky/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/arch/csky/util/Build b/tools/perf/arch/csky/util/Bu= ild index 7d3050134ae0..99d83f41bf43 100644 --- a/tools/perf/arch/csky/util/Build +++ b/tools/perf/arch/csky/util/Build @@ -1,4 +1,4 @@ -perf-y +=3D perf_regs.o +perf-util-y +=3D perf_regs.o =20 -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o diff --git a/tools/perf/arch/loongarch/Build b/tools/perf/arch/loongarch/Bu= ild index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/loongarch/Build +++ b/tools/perf/arch/loongarch/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/arch/loongarch/util/Build b/tools/perf/arch/loongar= ch/util/Build index d776125a2d06..2386ebbf6dd4 100644 --- a/tools/perf/arch/loongarch/util/Build +++ b/tools/perf/arch/loongarch/util/Build @@ -1,5 +1,5 @@ -perf-y +=3D perf_regs.o +perf-util-y +=3D perf_regs.o =20 -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o diff --git a/tools/perf/arch/mips/Build b/tools/perf/arch/mips/Build index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/mips/Build +++ b/tools/perf/arch/mips/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/arch/mips/util/Build b/tools/perf/arch/mips/util/Bu= ild index 51c8900a9a10..e4644f1e68a0 100644 --- a/tools/perf/arch/mips/util/Build +++ b/tools/perf/arch/mips/util/Build @@ -1,3 +1,3 @@ -perf-y +=3D perf_regs.o -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o +perf-util-y +=3D perf_regs.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o diff --git a/tools/perf/arch/powerpc/Build b/tools/perf/arch/powerpc/Build index 58b2d965ed86..12ebc65ea7a3 100644 --- a/tools/perf/arch/powerpc/Build +++ b/tools/perf/arch/powerpc/Build @@ -1,2 +1,2 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ perf-test-y +=3D tests/ diff --git a/tools/perf/arch/powerpc/util/Build b/tools/perf/arch/powerpc/u= til/Build index 1d323f3a3322..6c588ecdf3bd 100644 --- a/tools/perf/arch/powerpc/util/Build +++ b/tools/perf/arch/powerpc/util/Build @@ -1,14 +1,14 @@ -perf-y +=3D header.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o -perf-y +=3D perf_regs.o -perf-y +=3D mem-events.o -perf-y +=3D pmu.o -perf-y +=3D sym-handling.o -perf-y +=3D evsel.o -perf-y +=3D event.o +perf-util-y +=3D header.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o +perf-util-y +=3D perf_regs.o +perf-util-y +=3D mem-events.o +perf-util-y +=3D pmu.o +perf-util-y +=3D sym-handling.o +perf-util-y +=3D evsel.o +perf-util-y +=3D event.o =20 -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_DWARF) +=3D skip-callchain-idx.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_DWARF) +=3D skip-callchain-idx.o =20 -perf-$(CONFIG_LIBUNWIND) +=3D unwind-libunwind.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_LIBUNWIND) +=3D unwind-libunwind.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o diff --git a/tools/perf/arch/riscv/Build b/tools/perf/arch/riscv/Build index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/riscv/Build +++ b/tools/perf/arch/riscv/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/arch/riscv/util/Build b/tools/perf/arch/riscv/util/= Build index 603dbb5ae4dc..65ec3c66a375 100644 --- a/tools/perf/arch/riscv/util/Build +++ b/tools/perf/arch/riscv/util/Build @@ -1,5 +1,5 @@ -perf-y +=3D perf_regs.o -perf-y +=3D header.o +perf-util-y +=3D perf_regs.o +perf-util-y +=3D header.o =20 -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o diff --git a/tools/perf/arch/s390/Build b/tools/perf/arch/s390/Build index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/s390/Build +++ b/tools/perf/arch/s390/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/arch/s390/util/Build b/tools/perf/arch/s390/util/Bu= ild index fa66f15a14ec..1ac830030ff3 100644 --- a/tools/perf/arch/s390/util/Build +++ b/tools/perf/arch/s390/util/Build @@ -1,11 +1,11 @@ -perf-y +=3D header.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o -perf-y +=3D perf_regs.o +perf-util-y +=3D header.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o +perf-util-y +=3D perf_regs.o =20 -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o =20 -perf-y +=3D machine.o -perf-y +=3D pmu.o +perf-util-y +=3D machine.o +perf-util-y +=3D pmu.o =20 -perf-$(CONFIG_AUXTRACE) +=3D auxtrace.o +perf-util-$(CONFIG_AUXTRACE) +=3D auxtrace.o diff --git a/tools/perf/arch/sh/Build b/tools/perf/arch/sh/Build index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/sh/Build +++ b/tools/perf/arch/sh/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/arch/sh/util/Build b/tools/perf/arch/sh/util/Build index e813e618954b..32f44fc4ab98 100644 --- a/tools/perf/arch/sh/util/Build +++ b/tools/perf/arch/sh/util/Build @@ -1 +1 @@ -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o diff --git a/tools/perf/arch/sparc/Build b/tools/perf/arch/sparc/Build index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/sparc/Build +++ b/tools/perf/arch/sparc/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/arch/sparc/util/Build b/tools/perf/arch/sparc/util/= Build index e813e618954b..32f44fc4ab98 100644 --- a/tools/perf/arch/sparc/util/Build +++ b/tools/perf/arch/sparc/util/Build @@ -1 +1 @@ -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o diff --git a/tools/perf/arch/x86/Build b/tools/perf/arch/x86/Build index 132cf8beaca2..87d057491343 100644 --- a/tools/perf/arch/x86/Build +++ b/tools/perf/arch/x86/Build @@ -1,4 +1,4 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ perf-test-y +=3D tests/ =20 ifdef SHELLCHECK diff --git a/tools/perf/arch/x86/util/Build b/tools/perf/arch/x86/util/Build index 005907cb97d8..2607ed5c4296 100644 --- a/tools/perf/arch/x86/util/Build +++ b/tools/perf/arch/x86/util/Build @@ -1,24 +1,24 @@ -perf-y +=3D header.o -perf-y +=3D tsc.o -perf-y +=3D pmu.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o -perf-y +=3D perf_regs.o -perf-y +=3D topdown.o -perf-y +=3D machine.o -perf-y +=3D event.o -perf-y +=3D evlist.o -perf-y +=3D mem-events.o -perf-y +=3D evsel.o -perf-y +=3D iostat.o -perf-y +=3D env.o +perf-util-y +=3D header.o +perf-util-y +=3D tsc.o +perf-util-y +=3D pmu.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D kvm-stat.o +perf-util-y +=3D perf_regs.o +perf-util-y +=3D topdown.o +perf-util-y +=3D machine.o +perf-util-y +=3D event.o +perf-util-y +=3D evlist.o +perf-util-y +=3D mem-events.o +perf-util-y +=3D evsel.o +perf-util-y +=3D iostat.o +perf-util-y +=3D env.o =20 -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_BPF_PROLOGUE) +=3D dwarf-regs.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_BPF_PROLOGUE) +=3D dwarf-regs.o =20 -perf-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o =20 -perf-$(CONFIG_AUXTRACE) +=3D auxtrace.o -perf-$(CONFIG_AUXTRACE) +=3D archinsn.o -perf-$(CONFIG_AUXTRACE) +=3D intel-pt.o -perf-$(CONFIG_AUXTRACE) +=3D intel-bts.o +perf-util-$(CONFIG_AUXTRACE) +=3D auxtrace.o +perf-util-$(CONFIG_AUXTRACE) +=3D archinsn.o +perf-util-$(CONFIG_AUXTRACE) +=3D intel-pt.o +perf-util-$(CONFIG_AUXTRACE) +=3D intel-bts.o diff --git a/tools/perf/arch/xtensa/Build b/tools/perf/arch/xtensa/Build index e4e5f33c84d8..e63eabc2c8f4 100644 --- a/tools/perf/arch/xtensa/Build +++ b/tools/perf/arch/xtensa/Build @@ -1 +1 @@ -perf-y +=3D util/ +perf-util-y +=3D util/ diff --git a/tools/perf/scripts/Build b/tools/perf/scripts/Build index 7d8e2e57faac..46f0c6f76dbf 100644 --- a/tools/perf/scripts/Build +++ b/tools/perf/scripts/Build @@ -1,4 +1,4 @@ ifeq ($(CONFIG_LIBTRACEEVENT),y) - perf-$(CONFIG_LIBPERL) +=3D perl/Perf-Trace-Util/ + perf-util-$(CONFIG_LIBPERL) +=3D perl/Perf-Trace-Util/ endif -perf-$(CONFIG_LIBPYTHON) +=3D python/Perf-Trace-Util/ +perf-util-$(CONFIG_LIBPYTHON) +=3D python/Perf-Trace-Util/ diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Build b/tools/perf/scr= ipts/perl/Perf-Trace-Util/Build index cc76be005d5e..9b0e5a8b5070 100644 --- a/tools/perf/scripts/perl/Perf-Trace-Util/Build +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Build @@ -1,4 +1,4 @@ -perf-y +=3D Context.o +perf-util-y +=3D Context.o =20 CFLAGS_Context.o +=3D $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-stric= t-prototypes -Wno-bad-function-cast -Wno-declaration-after-statement -Wno-s= witch-enum CFLAGS_Context.o +=3D -Wno-unused-parameter -Wno-nested-externs -Wno-undef diff --git a/tools/perf/scripts/python/Perf-Trace-Util/Build b/tools/perf/s= cripts/python/Perf-Trace-Util/Build index 5b0b5ff7e14a..be3710c61320 100644 --- a/tools/perf/scripts/python/Perf-Trace-Util/Build +++ b/tools/perf/scripts/python/Perf-Trace-Util/Build @@ -1,4 +1,4 @@ -perf-y +=3D Context.o +perf-util-y +=3D Context.o =20 # -Wno-declaration-after-statement: The python headers have mixed code wit= h declarations (decls after asserts, for instance) CFLAGS_Context.o +=3D $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-str= ict-prototypes -Wno-unused-parameter -Wno-nested-externs -Wno-declaration-a= fter-statement diff --git a/tools/perf/util/Build b/tools/perf/util/Build index da64efd8718f..0f18fe81ef0b 100644 --- a/tools/perf/util/Build +++ b/tools/perf/util/Build @@ -1,181 +1,181 @@ include $(srctree)/tools/scripts/Makefile.include include $(srctree)/tools/scripts/utilities.mak =20 -perf-y +=3D arm64-frame-pointer-unwind-support.o -perf-y +=3D addr_location.o -perf-y +=3D annotate.o -perf-y +=3D block-info.o -perf-y +=3D block-range.o -perf-y +=3D build-id.o -perf-y +=3D cacheline.o -perf-y +=3D config.o -perf-y +=3D copyfile.o -perf-y +=3D ctype.o -perf-y +=3D db-export.o -perf-y +=3D disasm.o -perf-y +=3D env.o -perf-y +=3D event.o -perf-y +=3D evlist.o -perf-y +=3D sideband_evlist.o -perf-y +=3D evsel.o -perf-y +=3D evsel_fprintf.o -perf-y +=3D perf_event_attr_fprintf.o -perf-y +=3D evswitch.o -perf-y +=3D find_bit.o -perf-y +=3D get_current_dir_name.o -perf-y +=3D levenshtein.o -perf-y +=3D mmap.o -perf-y +=3D memswap.o -perf-y +=3D parse-events.o -perf-y +=3D print-events.o -perf-y +=3D tracepoint.o -perf-y +=3D perf_regs.o -perf-y +=3D perf-regs-arch/ -perf-y +=3D path.o -perf-y +=3D print_binary.o -perf-y +=3D print_insn.o -perf-y +=3D rlimit.o -perf-y +=3D argv_split.o -perf-y +=3D rbtree.o -perf-y +=3D libstring.o -perf-y +=3D bitmap.o -perf-y +=3D hweight.o -perf-y +=3D smt.o -perf-y +=3D strbuf.o -perf-y +=3D string.o -perf-y +=3D strlist.o -perf-y +=3D strfilter.o -perf-y +=3D top.o -perf-y +=3D usage.o -perf-y +=3D dso.o -perf-y +=3D dsos.o -perf-y +=3D symbol.o -perf-y +=3D symbol_fprintf.o -perf-y +=3D map_symbol.o -perf-y +=3D color.o -perf-y +=3D color_config.o -perf-y +=3D metricgroup.o -perf-y +=3D header.o -perf-y +=3D callchain.o -perf-y +=3D values.o -perf-y +=3D debug.o -perf-y +=3D fncache.o -perf-y +=3D machine.o -perf-y +=3D map.o -perf-y +=3D maps.o -perf-y +=3D pstack.o -perf-y +=3D session.o -perf-y +=3D sample-raw.o -perf-y +=3D s390-sample-raw.o -perf-y +=3D amd-sample-raw.o -perf-$(CONFIG_TRACE) +=3D syscalltbl.o -perf-y +=3D ordered-events.o -perf-y +=3D namespaces.o -perf-y +=3D comm.o -perf-y +=3D thread.o -perf-y +=3D threads.o -perf-y +=3D thread_map.o -perf-y +=3D parse-events-flex.o -perf-y +=3D parse-events-bison.o -perf-y +=3D pmu.o -perf-y +=3D pmus.o -perf-y +=3D pmu-flex.o -perf-y +=3D pmu-bison.o -perf-y +=3D svghelper.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D trace-event-info.o -perf-y +=3D trace-event-scripting.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D trace-event.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D trace-event-parse.o -perf-$(CONFIG_LIBTRACEEVENT) +=3D trace-event-read.o -perf-y +=3D sort.o -perf-y +=3D hist.o -perf-y +=3D util.o -perf-y +=3D cpumap.o -perf-y +=3D affinity.o -perf-y +=3D cputopo.o -perf-y +=3D cgroup.o -perf-y +=3D target.o -perf-y +=3D rblist.o -perf-y +=3D intlist.o -perf-y +=3D vdso.o -perf-y +=3D counts.o -perf-y +=3D stat.o -perf-y +=3D stat-shadow.o -perf-y +=3D stat-display.o -perf-y +=3D perf_api_probe.o -perf-y +=3D record.o -perf-y +=3D srcline.o -perf-y +=3D srccode.o -perf-y +=3D synthetic-events.o -perf-y +=3D data.o -perf-y +=3D tsc.o -perf-y +=3D cloexec.o -perf-y +=3D call-path.o -perf-y +=3D rwsem.o -perf-y +=3D thread-stack.o -perf-y +=3D spark.o -perf-y +=3D topdown.o -perf-y +=3D iostat.o -perf-y +=3D stream.o -perf-$(CONFIG_AUXTRACE) +=3D auxtrace.o -perf-$(CONFIG_AUXTRACE) +=3D intel-pt-decoder/ -perf-$(CONFIG_AUXTRACE) +=3D intel-pt.o -perf-$(CONFIG_AUXTRACE) +=3D intel-bts.o -perf-$(CONFIG_AUXTRACE) +=3D arm-spe.o -perf-$(CONFIG_AUXTRACE) +=3D arm-spe-decoder/ -perf-$(CONFIG_AUXTRACE) +=3D hisi-ptt.o -perf-$(CONFIG_AUXTRACE) +=3D hisi-ptt-decoder/ -perf-$(CONFIG_AUXTRACE) +=3D s390-cpumsf.o +perf-util-y +=3D arm64-frame-pointer-unwind-support.o +perf-util-y +=3D addr_location.o +perf-util-y +=3D annotate.o +perf-util-y +=3D block-info.o +perf-util-y +=3D block-range.o +perf-util-y +=3D build-id.o +perf-util-y +=3D cacheline.o +perf-util-y +=3D config.o +perf-util-y +=3D copyfile.o +perf-util-y +=3D ctype.o +perf-util-y +=3D db-export.o +perf-util-y +=3D disasm.o +perf-util-y +=3D env.o +perf-util-y +=3D event.o +perf-util-y +=3D evlist.o +perf-util-y +=3D sideband_evlist.o +perf-util-y +=3D evsel.o +perf-util-y +=3D evsel_fprintf.o +perf-util-y +=3D perf_event_attr_fprintf.o +perf-util-y +=3D evswitch.o +perf-util-y +=3D find_bit.o +perf-util-y +=3D get_current_dir_name.o +perf-util-y +=3D levenshtein.o +perf-util-y +=3D mmap.o +perf-util-y +=3D memswap.o +perf-util-y +=3D parse-events.o +perf-util-y +=3D print-events.o +perf-util-y +=3D tracepoint.o +perf-util-y +=3D perf_regs.o +perf-util-y +=3D perf-regs-arch/ +perf-util-y +=3D path.o +perf-util-y +=3D print_binary.o +perf-util-y +=3D print_insn.o +perf-util-y +=3D rlimit.o +perf-util-y +=3D argv_split.o +perf-util-y +=3D rbtree.o +perf-util-y +=3D libstring.o +perf-util-y +=3D bitmap.o +perf-util-y +=3D hweight.o +perf-util-y +=3D smt.o +perf-util-y +=3D strbuf.o +perf-util-y +=3D string.o +perf-util-y +=3D strlist.o +perf-util-y +=3D strfilter.o +perf-util-y +=3D top.o +perf-util-y +=3D usage.o +perf-util-y +=3D dso.o +perf-util-y +=3D dsos.o +perf-util-y +=3D symbol.o +perf-util-y +=3D symbol_fprintf.o +perf-util-y +=3D map_symbol.o +perf-util-y +=3D color.o +perf-util-y +=3D color_config.o +perf-util-y +=3D metricgroup.o +perf-util-y +=3D header.o +perf-util-y +=3D callchain.o +perf-util-y +=3D values.o +perf-util-y +=3D debug.o +perf-util-y +=3D fncache.o +perf-util-y +=3D machine.o +perf-util-y +=3D map.o +perf-util-y +=3D maps.o +perf-util-y +=3D pstack.o +perf-util-y +=3D session.o +perf-util-y +=3D sample-raw.o +perf-util-y +=3D s390-sample-raw.o +perf-util-y +=3D amd-sample-raw.o +perf-util-$(CONFIG_TRACE) +=3D syscalltbl.o +perf-util-y +=3D ordered-events.o +perf-util-y +=3D namespaces.o +perf-util-y +=3D comm.o +perf-util-y +=3D thread.o +perf-util-y +=3D threads.o +perf-util-y +=3D thread_map.o +perf-util-y +=3D parse-events-flex.o +perf-util-y +=3D parse-events-bison.o +perf-util-y +=3D pmu.o +perf-util-y +=3D pmus.o +perf-util-y +=3D pmu-flex.o +perf-util-y +=3D pmu-bison.o +perf-util-y +=3D svghelper.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D trace-event-info.o +perf-util-y +=3D trace-event-scripting.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D trace-event.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D trace-event-parse.o +perf-util-$(CONFIG_LIBTRACEEVENT) +=3D trace-event-read.o +perf-util-y +=3D sort.o +perf-util-y +=3D hist.o +perf-util-y +=3D util.o +perf-util-y +=3D cpumap.o +perf-util-y +=3D affinity.o +perf-util-y +=3D cputopo.o +perf-util-y +=3D cgroup.o +perf-util-y +=3D target.o +perf-util-y +=3D rblist.o +perf-util-y +=3D intlist.o +perf-util-y +=3D vdso.o +perf-util-y +=3D counts.o +perf-util-y +=3D stat.o +perf-util-y +=3D stat-shadow.o +perf-util-y +=3D stat-display.o +perf-util-y +=3D perf_api_probe.o +perf-util-y +=3D record.o +perf-util-y +=3D srcline.o +perf-util-y +=3D srccode.o +perf-util-y +=3D synthetic-events.o +perf-util-y +=3D data.o +perf-util-y +=3D tsc.o +perf-util-y +=3D cloexec.o +perf-util-y +=3D call-path.o +perf-util-y +=3D rwsem.o +perf-util-y +=3D thread-stack.o +perf-util-y +=3D spark.o +perf-util-y +=3D topdown.o +perf-util-y +=3D iostat.o +perf-util-y +=3D stream.o +perf-util-$(CONFIG_AUXTRACE) +=3D auxtrace.o +perf-util-$(CONFIG_AUXTRACE) +=3D intel-pt-decoder/ +perf-util-$(CONFIG_AUXTRACE) +=3D intel-pt.o +perf-util-$(CONFIG_AUXTRACE) +=3D intel-bts.o +perf-util-$(CONFIG_AUXTRACE) +=3D arm-spe.o +perf-util-$(CONFIG_AUXTRACE) +=3D arm-spe-decoder/ +perf-util-$(CONFIG_AUXTRACE) +=3D hisi-ptt.o +perf-util-$(CONFIG_AUXTRACE) +=3D hisi-ptt-decoder/ +perf-util-$(CONFIG_AUXTRACE) +=3D s390-cpumsf.o =20 ifdef CONFIG_LIBOPENCSD -perf-$(CONFIG_AUXTRACE) +=3D cs-etm.o -perf-$(CONFIG_AUXTRACE) +=3D cs-etm-decoder/ +perf-util-$(CONFIG_AUXTRACE) +=3D cs-etm.o +perf-util-$(CONFIG_AUXTRACE) +=3D cs-etm-decoder/ endif -perf-$(CONFIG_AUXTRACE) +=3D cs-etm-base.o - -perf-y +=3D parse-branch-options.o -perf-y +=3D dump-insn.o -perf-y +=3D parse-regs-options.o -perf-y +=3D parse-sublevel-options.o -perf-y +=3D term.o -perf-y +=3D help-unknown-cmd.o -perf-y +=3D dlfilter.o -perf-y +=3D mem-events.o -perf-y +=3D mem-info.o -perf-y +=3D vsprintf.o -perf-y +=3D units.o -perf-y +=3D time-utils.o -perf-y +=3D expr-flex.o -perf-y +=3D expr-bison.o -perf-y +=3D expr.o -perf-y +=3D branch.o -perf-y +=3D mem2node.o -perf-y +=3D clockid.o -perf-y +=3D list_sort.o -perf-y +=3D mutex.o -perf-y +=3D sharded_mutex.o - -perf-$(CONFIG_LIBBPF) +=3D bpf_map.o -perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_counter.o -perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_counter_cgroup.o -perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_ftrace.o -perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_off_cpu.o -perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf-filter.o -perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf-filter-flex.o -perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf-filter-bison.o +perf-util-$(CONFIG_AUXTRACE) +=3D cs-etm-base.o + +perf-util-y +=3D parse-branch-options.o +perf-util-y +=3D dump-insn.o +perf-util-y +=3D parse-regs-options.o +perf-util-y +=3D parse-sublevel-options.o +perf-util-y +=3D term.o +perf-util-y +=3D help-unknown-cmd.o +perf-util-y +=3D dlfilter.o +perf-util-y +=3D mem-events.o +perf-util-y +=3D mem-info.o +perf-util-y +=3D vsprintf.o +perf-util-y +=3D units.o +perf-util-y +=3D time-utils.o +perf-util-y +=3D expr-flex.o +perf-util-y +=3D expr-bison.o +perf-util-y +=3D expr.o +perf-util-y +=3D branch.o +perf-util-y +=3D mem2node.o +perf-util-y +=3D clockid.o +perf-util-y +=3D list_sort.o +perf-util-y +=3D mutex.o +perf-util-y +=3D sharded_mutex.o + +perf-util-$(CONFIG_LIBBPF) +=3D bpf_map.o +perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_counter.o +perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_counter_cgroup.o +perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_ftrace.o +perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_off_cpu.o +perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf-filter.o +perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf-filter-flex.o +perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf-filter-bison.o =20 ifeq ($(CONFIG_LIBTRACEEVENT),y) - perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_lock_contention.o + perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_lock_contention.o endif =20 ifeq ($(CONFIG_LIBTRACEEVENT),y) - perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_kwork.o - perf-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_kwork_top.o + perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_kwork.o + perf-util-$(CONFIG_PERF_BPF_SKEL) +=3D bpf_kwork_top.o endif =20 -perf-$(CONFIG_LIBELF) +=3D symbol-elf.o -perf-$(CONFIG_LIBELF) +=3D probe-file.o -perf-$(CONFIG_LIBELF) +=3D probe-event.o +perf-util-$(CONFIG_LIBELF) +=3D symbol-elf.o +perf-util-$(CONFIG_LIBELF) +=3D probe-file.o +perf-util-$(CONFIG_LIBELF) +=3D probe-event.o =20 ifdef CONFIG_LIBBPF_DYNAMIC hashmap :=3D 1 @@ -185,60 +185,60 @@ ifndef CONFIG_LIBBPF endif =20 ifdef hashmap -perf-y +=3D hashmap.o +perf-util-y +=3D hashmap.o endif =20 ifndef CONFIG_LIBELF -perf-y +=3D symbol-minimal.o +perf-util-y +=3D symbol-minimal.o endif =20 ifndef CONFIG_SETNS -perf-y +=3D setns.o +perf-util-y +=3D setns.o endif =20 -perf-$(CONFIG_DWARF) +=3D probe-finder.o -perf-$(CONFIG_DWARF) +=3D dwarf-aux.o -perf-$(CONFIG_DWARF) +=3D dwarf-regs.o -perf-$(CONFIG_DWARF) +=3D debuginfo.o -perf-$(CONFIG_DWARF) +=3D annotate-data.o +perf-util-$(CONFIG_DWARF) +=3D probe-finder.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-aux.o +perf-util-$(CONFIG_DWARF) +=3D dwarf-regs.o +perf-util-$(CONFIG_DWARF) +=3D debuginfo.o +perf-util-$(CONFIG_DWARF) +=3D annotate-data.o =20 -perf-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o -perf-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind-local.o -perf-$(CONFIG_LIBUNWIND) +=3D unwind-libunwind.o -perf-$(CONFIG_LIBUNWIND_X86) +=3D libunwind/x86_32.o -perf-$(CONFIG_LIBUNWIND_AARCH64) +=3D libunwind/arm64.o +perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) +=3D unwind-libdw.o +perf-util-$(CONFIG_LOCAL_LIBUNWIND) +=3D unwind-libunwind-local.o +perf-util-$(CONFIG_LIBUNWIND) +=3D unwind-libunwind.o +perf-util-$(CONFIG_LIBUNWIND_X86) +=3D libunwind/x86_32.o +perf-util-$(CONFIG_LIBUNWIND_AARCH64) +=3D libunwind/arm64.o =20 ifeq ($(CONFIG_LIBTRACEEVENT),y) - perf-$(CONFIG_LIBBABELTRACE) +=3D data-convert-bt.o + perf-util-$(CONFIG_LIBBABELTRACE) +=3D data-convert-bt.o endif =20 -perf-y +=3D data-convert-json.o +perf-util-y +=3D data-convert-json.o =20 -perf-y +=3D scripting-engines/ +perf-util-y +=3D scripting-engines/ =20 -perf-$(CONFIG_ZLIB) +=3D zlib.o -perf-$(CONFIG_LZMA) +=3D lzma.o -perf-$(CONFIG_ZSTD) +=3D zstd.o +perf-util-$(CONFIG_ZLIB) +=3D zlib.o +perf-util-$(CONFIG_LZMA) +=3D lzma.o +perf-util-$(CONFIG_ZSTD) +=3D zstd.o =20 -perf-$(CONFIG_LIBCAP) +=3D cap.o +perf-util-$(CONFIG_LIBCAP) +=3D cap.o =20 -perf-$(CONFIG_CXX_DEMANGLE) +=3D demangle-cxx.o -perf-y +=3D demangle-ocaml.o -perf-y +=3D demangle-java.o -perf-y +=3D demangle-rust.o +perf-util-$(CONFIG_CXX_DEMANGLE) +=3D demangle-cxx.o +perf-util-y +=3D demangle-ocaml.o +perf-util-y +=3D demangle-java.o +perf-util-y +=3D demangle-rust.o =20 ifdef CONFIG_JITDUMP -perf-$(CONFIG_LIBELF) +=3D jitdump.o -perf-$(CONFIG_LIBELF) +=3D genelf.o -perf-$(CONFIG_DWARF) +=3D genelf_debug.o +perf-util-$(CONFIG_LIBELF) +=3D jitdump.o +perf-util-$(CONFIG_LIBELF) +=3D genelf.o +perf-util-$(CONFIG_DWARF) +=3D genelf_debug.o endif =20 -perf-y +=3D perf-hooks.o +perf-util-y +=3D perf-hooks.o =20 -perf-$(CONFIG_LIBBPF) +=3D bpf-event.o -perf-$(CONFIG_LIBBPF) +=3D bpf-utils.o +perf-util-$(CONFIG_LIBBPF) +=3D bpf-event.o +perf-util-$(CONFIG_LIBBPF) +=3D bpf-utils.o =20 -perf-$(CONFIG_LIBPFM4) +=3D pfm.o +perf-util-$(CONFIG_LIBPFM4) +=3D pfm.o =20 CFLAGS_config.o +=3D -DETC_PERFCONFIG=3D"BUILD_STR($(ETC_PERFCONFIG_SQ))" =20 @@ -403,4 +403,4 @@ $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 -perf-y +=3D $(TEST_LOGS) +perf-util-y +=3D $(TEST_LOGS) diff --git a/tools/perf/util/arm-spe-decoder/Build b/tools/perf/util/arm-sp= e-decoder/Build index f8dae13fc876..960062b3cb9e 100644 --- a/tools/perf/util/arm-spe-decoder/Build +++ b/tools/perf/util/arm-spe-decoder/Build @@ -1 +1 @@ -perf-$(CONFIG_AUXTRACE) +=3D arm-spe-pkt-decoder.o arm-spe-decoder.o +perf-util-$(CONFIG_AUXTRACE) +=3D arm-spe-pkt-decoder.o arm-spe-decoder.o diff --git a/tools/perf/util/cs-etm-decoder/Build b/tools/perf/util/cs-etm-= decoder/Build index 216cb17a3322..056d665f7f88 100644 --- a/tools/perf/util/cs-etm-decoder/Build +++ b/tools/perf/util/cs-etm-decoder/Build @@ -1 +1 @@ -perf-$(CONFIG_AUXTRACE) +=3D cs-etm-decoder.o +perf-util-$(CONFIG_AUXTRACE) +=3D cs-etm-decoder.o diff --git a/tools/perf/util/hisi-ptt-decoder/Build b/tools/perf/util/hisi-= ptt-decoder/Build index db3db8b75033..3298f7b7e308 100644 --- a/tools/perf/util/hisi-ptt-decoder/Build +++ b/tools/perf/util/hisi-ptt-decoder/Build @@ -1 +1 @@ -perf-$(CONFIG_AUXTRACE) +=3D hisi-ptt-pkt-decoder.o +perf-util-$(CONFIG_AUXTRACE) +=3D hisi-ptt-pkt-decoder.o diff --git a/tools/perf/util/intel-pt-decoder/Build b/tools/perf/util/intel= -pt-decoder/Build index b41c2e9c6f88..30793d08c6d4 100644 --- a/tools/perf/util/intel-pt-decoder/Build +++ b/tools/perf/util/intel-pt-decoder/Build @@ -1,4 +1,4 @@ -perf-$(CONFIG_AUXTRACE) +=3D intel-pt-pkt-decoder.o intel-pt-insn-decoder.= o intel-pt-log.o intel-pt-decoder.o +perf-util-$(CONFIG_AUXTRACE) +=3D intel-pt-pkt-decoder.o intel-pt-insn-dec= oder.o intel-pt-log.o intel-pt-decoder.o =20 inat_tables_script =3D $(srctree)/tools/arch/x86/tools/gen-insn-attr-x86.a= wk inat_tables_maps =3D $(srctree)/tools/arch/x86/lib/x86-opcode-map.txt diff --git a/tools/perf/util/perf-regs-arch/Build b/tools/perf/util/perf-re= gs-arch/Build index d9d596d330a7..be95402aa540 100644 --- a/tools/perf/util/perf-regs-arch/Build +++ b/tools/perf/util/perf-regs-arch/Build @@ -1,9 +1,9 @@ -perf-y +=3D perf_regs_aarch64.o -perf-y +=3D perf_regs_arm.o -perf-y +=3D perf_regs_csky.o -perf-y +=3D perf_regs_loongarch.o -perf-y +=3D perf_regs_mips.o -perf-y +=3D perf_regs_powerpc.o -perf-y +=3D perf_regs_riscv.o -perf-y +=3D perf_regs_s390.o -perf-y +=3D perf_regs_x86.o +perf-util-y +=3D perf_regs_aarch64.o +perf-util-y +=3D perf_regs_arm.o +perf-util-y +=3D perf_regs_csky.o +perf-util-y +=3D perf_regs_loongarch.o +perf-util-y +=3D perf_regs_mips.o +perf-util-y +=3D perf_regs_powerpc.o +perf-util-y +=3D perf_regs_riscv.o +perf-util-y +=3D perf_regs_s390.o +perf-util-y +=3D perf_regs_x86.o diff --git a/tools/perf/util/scripting-engines/Build b/tools/perf/util/scri= pting-engines/Build index 586b94e90f4e..2282fe3772f3 100644 --- a/tools/perf/util/scripting-engines/Build +++ b/tools/perf/util/scripting-engines/Build @@ -1,7 +1,7 @@ ifeq ($(CONFIG_LIBTRACEEVENT),y) - perf-$(CONFIG_LIBPERL) +=3D trace-event-perl.o + perf-util-$(CONFIG_LIBPERL) +=3D trace-event-perl.o endif -perf-$(CONFIG_LIBPYTHON) +=3D trace-event-python.o +perf-util-$(CONFIG_LIBPYTHON) +=3D trace-event-python.o =20 CFLAGS_trace-event-perl.o +=3D $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -= Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-nested-externs= -Wno-undef -Wno-switch-default -Wno-bad-function-cast -Wno-declaration-aft= er-statement -Wno-switch-enum =20 --=20 2.45.2.741.gdbec12cfda-goog From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D0801802B2 for ; Tue, 25 Jun 2024 21:41:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351701; cv=none; b=sFrOmKVOwIdrZGK8IDNoXsMXC6jFbdQmZcSj7gYKkzhR5KuOc15icGSHqqojjKRG6HzmzUqHnDObVbEHY/ehhrBOeIxcQYsbAHAU8K0X8ZCo1jKNvhh26OUAmTKeU1FVM8azTZrGcD8+ahImVmObz9RGtU2BJuuSIZDYDEwSPDA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351701; c=relaxed/simple; bh=3L4VCPu5Gi0E3loQZRfPWXHSalpI7X3sqJEW5i53YJ0=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=TJIAijdgORUKawh32tYSYbHm7QH1dtSnjbcm/p4ttA5D5eNlwYBDITEMk60JgnyziXOkx1SRkIqNna2f8J/PpC4xlsGdJfAW40SbRfhrk9CD6cgA9B4bcFoGFmcsr3VGf+vXqo3t5iUCEi98SMt/nwbfil339Kcqf0lYQVdTvv0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=P+7xtOXe; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="P+7xtOXe" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-e02c3d0f784so11389233276.0 for ; Tue, 25 Jun 2024 14:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351697; x=1719956497; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=Z5WhEzrAKR6etY4+8+J3I2144onDLe33a/pW/pB3BVA=; b=P+7xtOXeFULI2PKGsyVlWVyQvt568AjAWVoGETV4TqC10IAtzLkM1gY7WqknQOje0u NeoaDHlE1Erqfv2qak3wvRvIexJjJpkeVBV1pNpLbUjRrqbNG9cZ1cgJk3hwCOdx6fTP BVPIif05SLPEo7vk0/s1JF3rwguXdll56Tyh3+6OPyx7wfdwC55MwjWheEqLXDfUSIfC iBqIl+MZWr7dvLi1kLuiF1iPimJaFjbKIioqAedPqnKkESii95eiGYjR3qhWfCYJIOFr wq1tgQ3JCmt71kiXXTQy55+KAKdTzqewVn87vbSEYgZ+SKzm7KMUBtp1gvvv+GMfaf56 nHWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351697; x=1719956497; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Z5WhEzrAKR6etY4+8+J3I2144onDLe33a/pW/pB3BVA=; b=bowLtOGz3LUbabX691U96FIe2OyT8Ya1RIR0GL6UTm2yxQH3QsQwCXztKTnZ2/nlju PVJ2lEV2w9Zqzk6wM2802LgSKGTRVn7rq+xwJFm1Q6OAbHOXipWHOlSigymC9CJvg4CW UDtzMWvlBju3ZA32dtMS6P7DTC8RB9GdV0XytNEkbNbtpMpmPWt59X3lHjM6J5bRnGHk GOsU4aKcGrs/UzG9oNZ+tiOgNgWiM36Zaj1qldTwOZlFrmaV1XZCYE6cLAdtXHflB6G3 Uy25iV7R5e9zp7B4gNYLBGqW37MTfYLtKCS7Qn6O8A+UJWeRXJD3SQlx4k+/hmFofdPS JSXQ== X-Forwarded-Encrypted: i=1; AJvYcCWxQA/fiODYKwxv7GgxC8gngzstpV3EAWGFM+1eAJt7ZiXYd+/15nMUQV+Z4MMTkU6h7b5uDi5zCd/4fmheCMfNBoecK+xsycJlAa6t X-Gm-Message-State: AOJu0YxP/2pgmewBnFAqfSfZq88NLPtWxmjLf0Ix6Pp9ELUKgBYiDOQs Ynq9h0WmU+94A1cf3+4HWL4CG7c7+hCO5ZmrJ+zApty/a/SOTUkkisvLMwvQwzfGgl78sOthM/N 2roqrWA== X-Google-Smtp-Source: AGHT+IE7jyOPp4+tb2+6xJNoy9tMl1YT58geL2qjARVlz2+1c3RdpX1i8fJ7tB3il8OZZcakXOs8nU4zNYDW X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a05:6902:10c1:b0:df1:d00c:130c with SMTP id 3f1490d57ef6-e0300f534d8mr22496276.5.1719351696988; Tue, 25 Jun 2024 14:41:36 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:16 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-8-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 7/8] perf python: Switch module to linking libraries from building source From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" setup.py was building most perf sources causing setup.py to mimic the Makefile logic as well as flex/bison code to be stubbed out, due to complexity building. By using libraries fewer functions are stubbed out, the build is faster and the Makefile logic is reused which should simplify updating. The libraries are passed through LDFLAGS to avoid complexity in python. Force the -fPIC flag for libbpf.a to ensure it is suitable for linking into the perf python module. Signed-off-by: Ian Rogers Reviewed-by: James Clark --- tools/perf/Makefile.config | 5 + tools/perf/Makefile.perf | 6 +- tools/perf/util/python.c | 274 +++++++++++++------------------------ tools/perf/util/setup.py | 33 +---- 4 files changed, 110 insertions(+), 208 deletions(-) diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index 81f73f68d256..5271a4c1d2b3 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -908,6 +908,11 @@ else endif CFLAGS +=3D -DHAVE_LIBPYTHON_SUPPORT $(call detected,CONFIG_LIBPYTHON) + ifeq ($(filter -fPIC,$(CFLAGS)),) + # Building a shared library requires position independent code. + CFLAGS +=3D -fPIC + CXXFLAGS +=3D -fPIC + endif endif endif endif diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index ff03f0431013..4a1a9f09fa09 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -715,9 +715,9 @@ all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BI= NDINGS) $(OTHER_PROGRAMS) # Create python binding output directory if not already present $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python') =20 -$(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHO= N_EXT_DEPS) $(LIBPERF) $(LIBSUBCMD) +$(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHO= N_EXT_DEPS) $(PERFLIBS) $(QUIET_GEN)LDSHARED=3D"$(CC) -pthread -shared" \ - CFLAGS=3D'$(CFLAGS)' LDFLAGS=3D'$(LDFLAGS)' \ + CFLAGS=3D'$(CFLAGS)' LDFLAGS=3D'$(LDFLAGS) $(LIBS)' \ $(PYTHON_WORD) util/setup.py \ --quiet build_ext; \ cp $(PYTHON_EXTBUILD_LIB)perf*.so $(OUTPUT)python/ @@ -933,7 +933,7 @@ $(LIBAPI)-clean: $(LIBBPF): FORCE | $(LIBBPF_OUTPUT) $(Q)$(MAKE) -C $(LIBBPF_DIR) FEATURES_DUMP=3D$(FEATURE_DUMP_EXPORT) \ O=3D OUTPUT=3D$(LIBBPF_OUTPUT)/ DESTDIR=3D$(LIBBPF_DESTDIR) prefix=3D su= bdir=3D \ - $@ install_headers + EXTRA_CFLAGS=3D"-fPIC" $@ install_headers =20 $(LIBBPF)-clean: $(call QUIET_CLEAN, libbpf) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 88f98f2772fb..3be882b2e845 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -10,22 +10,19 @@ #endif #include #include "evlist.h" -#include "callchain.h" #include "evsel.h" #include "event.h" #include "print_binary.h" #include "thread_map.h" #include "trace-event.h" #include "mmap.h" -#include "stat.h" -#include "metricgroup.h" #include "util/bpf-filter.h" #include "util/env.h" -#include "util/pmu.h" -#include "util/pmus.h" -#include "util/symbol_conf.h" +#include "util/kvm-stat.h" +#include "util/kwork.h" +#include "util/lock-contention.h" #include -#include "util.h" +#include "../builtin.h" =20 #if PY_MAJOR_VERSION < 3 #define _PyUnicode_FromString(arg) \ @@ -51,168 +48,6 @@ #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) #endif =20 -struct symbol_conf symbol_conf; - -/* - * Avoid bringing in event parsing. - */ -int parse_event(struct evlist *evlist __maybe_unused, const char *str __ma= ybe_unused) -{ - return 0; -} - -/* - * Provide these two so that we don't have to link against callchain.c and - * start dragging hist.c, etc. - */ -struct callchain_param callchain_param; - -int parse_callchain_record(const char *arg __maybe_unused, - struct callchain_param *param __maybe_unused) -{ - return 0; -} - -/* - * Add these not to drag util/env.c - */ -struct perf_env perf_env; - -const char *perf_env__cpuid(struct perf_env *env __maybe_unused) -{ - return NULL; -} - -// This one is a bit easier, wouldn't drag too much, but leave it as a stu= b we need it here -const char *perf_env__arch(struct perf_env *env __maybe_unused) -{ - return NULL; -} - -/* - * These ones are needed not to drag the PMU bandwagon, jevents generated - * pmu_sys_event_tables, etc and evsel__find_pmu() is used so far just for - * doing per PMU perf_event_attr.exclude_guest handling, not really needed= , so - * far, for the perf python binding known usecases, revisit if this become - * necessary. - */ -struct perf_pmu *evsel__find_pmu(const struct evsel *evsel __maybe_unused) -{ - return NULL; -} - -int perf_pmu__scan_file(const struct perf_pmu *pmu, const char *name, cons= t char *fmt, ...) -{ - return EOF; -} - -const char *perf_pmu__name_from_config(struct perf_pmu *pmu __maybe_unused= , u64 config __maybe_unused) -{ - return NULL; -} - -struct perf_pmu *perf_pmus__find_by_type(unsigned int type __maybe_unused) -{ - return NULL; -} - -int perf_pmus__num_core_pmus(void) -{ - return 1; -} - -bool evsel__is_aux_event(const struct evsel *evsel __maybe_unused) -{ - return false; -} - -bool perf_pmus__supports_extended_type(void) -{ - return false; -} - -/* - * Add this one here not to drag util/metricgroup.c - */ -int metricgroup__copy_metric_events(struct evlist *evlist, struct cgroup *= cgrp, - struct rblist *new_metric_events, - struct rblist *old_metric_events) -{ - return 0; -} - -/* - * Add this one here not to drag util/trace-event-info.c - */ -char *tracepoint_id_to_name(u64 config) -{ - return NULL; -} - -/* - * XXX: All these evsel destructors need some better mechanism, like a lin= ked - * list of destructors registered when the relevant code indeed is used in= stead - * of having more and more calls in perf_evsel__delete(). -- acme - * - * For now, add some more: - * - * Not to drag the BPF bandwagon... - */ -void bpf_counter__destroy(struct evsel *evsel); -int bpf_counter__install_pe(struct evsel *evsel, int cpu, int fd); -int bpf_counter__disable(struct evsel *evsel); - -void bpf_counter__destroy(struct evsel *evsel __maybe_unused) -{ -} - -int bpf_counter__install_pe(struct evsel *evsel __maybe_unused, int cpu __= maybe_unused, int fd __maybe_unused) -{ - return 0; -} - -int bpf_counter__disable(struct evsel *evsel __maybe_unused) -{ - return 0; -} - -// not to drag util/bpf-filter.c -#ifdef HAVE_BPF_SKEL -int perf_bpf_filter__prepare(struct evsel *evsel __maybe_unused) -{ - return 0; -} - -int perf_bpf_filter__destroy(struct evsel *evsel __maybe_unused) -{ - return 0; -} -#endif - -/* - * Support debug printing even though util/debug.c is not linked. That me= ans - * implementing 'verbose' and 'eprintf'. - */ -int verbose; -int debug_kmaps; -int debug_peo_args; - -int eprintf(int level, int var, const char *fmt, ...); - -int eprintf(int level, int var, const char *fmt, ...) -{ - va_list args; - int ret =3D 0; - - if (var >=3D level) { - va_start(args, fmt); - ret =3D vfprintf(stderr, fmt, args); - va_end(args); - } - - return ret; -} - /* Define PyVarObject_HEAD_INIT for python 2.5 */ #ifndef PyVarObject_HEAD_INIT # define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size, @@ -1513,15 +1348,102 @@ PyMODINIT_FUNC PyInit_perf(void) #endif } =20 -/* - * Dummy, to avoid dragging all the test_attr infrastructure in the python - * binding. - */ -void test_attr__open(struct perf_event_attr *attr, pid_t pid, struct perf_= cpu cpu, - int fd, int group_fd, unsigned long flags) + +/* The following are stubs to avoid dragging in builtin-* objects. */ +/* TODO: move the code out of the builtin-* file into util. */ + +unsigned int scripting_max_stack =3D PERF_MAX_STACK_DEPTH; + +bool kvm_entry_event(struct evsel *evsel __maybe_unused) { + return false; +} + +bool kvm_exit_event(struct evsel *evsel __maybe_unused) +{ + return false; +} + +bool exit_event_begin(struct evsel *evsel __maybe_unused, + struct perf_sample *sample __maybe_unused, + struct event_key *key __maybe_unused) +{ + return false; +} + +bool exit_event_end(struct evsel *evsel __maybe_unused, + struct perf_sample *sample __maybe_unused, + struct event_key *key __maybe_unused) +{ + return false; +} + +void exit_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, + struct event_key *key __maybe_unused, + char *decode __maybe_unused) +{ +} + +int find_scripts(char **scripts_array __maybe_unused, char **scripts_path= _array __maybe_unused, + int num __maybe_unused, int pathlen __maybe_unused) +{ + return -1; +} + +void perf_stat__set_no_csv_summary(int set __maybe_unused) +{ +} + +void perf_stat__set_big_num(int set __maybe_unused) +{ +} + +int script_spec_register(const char *spec __maybe_unused, struct scripting= _ops *ops __maybe_unused) +{ + return -1; +} + +arch_syscalls__strerrno_t *arch_syscalls__strerrno_function(const char *ar= ch __maybe_unused) +{ + return NULL; +} + +struct kwork_work *perf_kwork_add_work(struct perf_kwork *kwork __maybe_un= used, + struct kwork_class *class __maybe_unused, + struct kwork_work *key __maybe_unused) +{ + return NULL; +} + +void script_fetch_insn(struct perf_sample *sample __maybe_unused, + struct thread *thread __maybe_unused, + struct machine *machine __maybe_unused) +{ +} + +int perf_sample__sprintf_flags(u32 flags __maybe_unused, char *str __maybe= _unused, + size_t sz __maybe_unused) +{ + return -1; +} + +bool match_callstack_filter(struct machine *machine __maybe_unused, u64 *c= allstack __maybe_unused) +{ + return false; +} + +struct lock_stat *lock_stat_find(u64 addr __maybe_unused) +{ + return NULL; +} + +struct lock_stat *lock_stat_findnew(u64 addr __maybe_unused, const char *n= ame __maybe_unused, + int flags __maybe_unused) +{ + return NULL; } =20 -void evlist__free_stats(struct evlist *evlist) +int cmd_inject(int argc __maybe_unused, const char *argv[] __maybe_unused) { + return -1; } diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py index 3107f5aa8c9a..142e9d447ce7 100644 --- a/tools/perf/util/setup.py +++ b/tools/perf/util/setup.py @@ -60,7 +60,7 @@ class install_lib(_install_lib): =20 cflags =3D getenv('CFLAGS', '').split() # switch off several checks (need to be at the end of cflags list) -cflags +=3D ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-pa= rameter', '-Wno-redundant-decls', '-DPYTHON_PERF' ] +cflags +=3D ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-pa= rameter', '-Wno-redundant-decls' ] if cc_is_clang: cflags +=3D ["-Wno-unused-command-line-argument" ] else: @@ -72,36 +72,11 @@ cflags +=3D [ "-Wno-declaration-after-statement" ] src_perf =3D getenv('srctree') + '/tools/perf' build_lib =3D getenv('PYTHON_EXTBUILD_LIB') build_tmp =3D getenv('PYTHON_EXTBUILD_TMP') -libtraceevent =3D getenv('LIBTRACEEVENT') -libapikfs =3D getenv('LIBAPI') -libperf =3D getenv('LIBPERF') - -ext_sources =3D [f.strip() for f in open('util/python-ext-sources') - if len(f.strip()) > 0 and f[0] !=3D '#'] - -extra_libraries =3D [] - -if '-DHAVE_LIBTRACEEVENT' in cflags: - extra_libraries +=3D [ 'traceevent' ] -else: - ext_sources.remove('util/trace-event.c') - ext_sources.remove('util/trace-event-parse.c') - -# use full paths with source files -ext_sources =3D list(map(lambda x: '%s/%s' % (src_perf, x) , ext_sources)) - -if '-DHAVE_LIBNUMA_SUPPORT' in cflags: - extra_libraries +=3D [ 'numa' ] -if '-DHAVE_LIBCAP_SUPPORT' in cflags: - extra_libraries +=3D [ 'cap' ] =20 perf =3D Extension('perf', - sources =3D ext_sources, - include_dirs =3D ['util/include'], - libraries =3D extra_libraries, - extra_compile_args =3D cflags, - extra_objects =3D [ x for x in [libtraceevent, libapikfs, libperf] - if x is not None], + sources =3D [ src_perf + '/util/python.c' ], + include_dirs =3D ['util/include'], + extra_compile_args =3D cflags, ) =20 setup(name=3D'perf', --=20 2.45.2.741.gdbec12cfda-goog From nobody Wed Dec 17 21:13:29 2025 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6114F1802AB for ; Tue, 25 Jun 2024 21:41:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351702; cv=none; b=mN7vA24bvXeouIYnBvL2NLYlz3Jb1PGTn0pzaH0uGbsqnV8yOV6gjUj5aSRs6D3Lzkm4idSyHNAcaDlP2tWNiPqlN6uJ0bbcHe5Ena3TC6EYkp4gwV8NhORegnHGzKeKTRcYf7lVTcNFEuslMRIPKvqNF40/b2U7cqeNX1c2i6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719351702; c=relaxed/simple; bh=CETWFSp62XKm8QsosO88QfPlj5Apj8qlAZlMiQJxdG8=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=Bqj2FUSjVOmAPlfiZYHY9FCxMgl/VnZu8/1vgmPaVK96jS9UmikCXpN7zEaL8W/7kH+yvgLTkwTqixUVVhBoodY1vggEFj+NHuIr5P1qjHTv+nBqWeRmc52vDOosObzNfJsaRZN1iK+WcMb77gWPPWKpeo+9d5dMFgwNbkHQd1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=p3RW6/TX; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="p3RW6/TX" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-62d054b1ceeso124462497b3.2 for ; Tue, 25 Jun 2024 14:41:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719351699; x=1719956499; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=TNiHPl//Lsoc2p9Fy12YXW9IZoRAXfYV1fymis0TYVQ=; b=p3RW6/TXOOIARDXQ8GBokjGqF/bi3WptCHEnzNgRd0tDZjW2TDRynJ9+kCeYJjAXVZ WGOml0P211ZCtWHW/dOA+6pMX9/BsyDIKsZriSuDc13qyuFjp23vtlhXQqM7KM4iDoJ2 tcmvEsRAC4JJzlvHIRrGQkuvtZnu23nm+F9pT3igaHz6pTaVEWc1vg4kCgzSxYUaRSXC otmdTy4IznIVr9IEPnAcjZg+AgpVaSaq7wAeg0GcuPAlHucaprd+4mYcRKBhulMgzo5B 2r3bGZ+ie49FtpmG0WAcdtqMV2WvXoFuB6aIcZEU6xeib9HJ3lhiChZMDQ9AZuvL+T/m 2/Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719351699; x=1719956499; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TNiHPl//Lsoc2p9Fy12YXW9IZoRAXfYV1fymis0TYVQ=; b=Zw/ZtIUl2emH8WZJJrUKEpq2DMEI83k1h51I/VM8m/AQFYiRXaWMuBRc6r32ySjqfh fnlnW96/VZ4xpBO8Uc78axVF7SX1MgBFEg0eIrQnaruAdOQTbkcKHUXk3AYrmYsDmnZl lGkycQPWNpoaMz7e07kT2ene8P8dfKyLqXcMTcJ3n8AUvllulCYngwzOCXqvZhi4I1mA j9vG3OpWr2FRma6jyxCNP44N2jOPiPiOA9dxj3EFE+PvRjbItJ5CxQ5DiOwfEtuXIY4f UvoU4PiuMMdOfbpJ0FmR/Wd4rB5botqo2sTftqzn1ivq2sqPPgn90PCDbvno0WLltedd g6nA== X-Forwarded-Encrypted: i=1; AJvYcCX9DUlIxKT7nfIp/MW5NFZzlKERfrB6RsJKRtfGFcvXLJvEiS/evZ/9gM2XmbJJm3o0vZxdMLISKOfCTuo/rGDgGlk+J2lh6BjtaF17 X-Gm-Message-State: AOJu0Yz8dhXGvDkcIVd/Vh/QHRf+RSPUkz9oGu7qqYcethrgA7b0X54Q MAIW4imTw8oUu0tfbfI8SZYYxKft9v/mI+tcqS1Yc2lUmqogFLh95b5ZmoWQCTDGVOLLJNyibgG p0lS94g== X-Google-Smtp-Source: AGHT+IFf6QjCAadJ64QWN4oknaimKg8PZx1SVSDc+jL/zM435Qhp/FAtzNAZRfPH43WJkSqiC7EzuQKOhPB7 X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:23a1:25b9:2412:56de]) (user=irogers job=sendgmr) by 2002:a05:690c:e1e:b0:62f:f535:f41 with SMTP id 00721157ae682-643ae731fb3mr2924307b3.9.1719351699321; Tue, 25 Jun 2024 14:41:39 -0700 (PDT) Date: Tue, 25 Jun 2024 14:41:17 -0700 In-Reply-To: <20240625214117.953777-1-irogers@google.com> Message-Id: <20240625214117.953777-9-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240625214117.953777-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.741.gdbec12cfda-goog Subject: [PATCH v5 8/8] perf python: Clean up build dependencies From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Andrei Vagin , Kees Cook , Oliver Upton , Ze Gao , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The python build now depends on libraries and doesn't use python-ext-sources except for the util/python.c dependency. Switch to just directly depending on that file and util/setup.py. This allows the removal of python-ext-sources. Signed-off-by: Ian Rogers Reviewed-by: James Clark --- tools/perf/Makefile.perf | 10 +----- tools/perf/util/python-ext-sources | 53 ------------------------------ 2 files changed, 1 insertion(+), 62 deletions(-) delete mode 100644 tools/perf/util/python-ext-sources diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 4a1a9f09fa09..590081384882 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -380,14 +380,6 @@ python-clean :=3D $(call QUIET_CLEAN, python) $(RM) -r= $(PYTHON_EXTBUILD) $(OUTPUT # Use the detected configuration -include $(OUTPUT).config-detected =20 -ifeq ($(CONFIG_LIBTRACEEVENT),y) - PYTHON_EXT_SRCS :=3D $(shell grep -v ^\# util/python-ext-sources) -else - PYTHON_EXT_SRCS :=3D $(shell grep -v ^\#\\\|util/trace-event.c\\\|util/t= race-event-parse.c util/python-ext-sources) -endif - -PYTHON_EXT_DEPS :=3D util/python-ext-sources util/setup.py $(LIBAPI) - SCRIPTS =3D $(patsubst %.sh,%,$(SCRIPT_SH)) =20 PROGRAMS +=3D $(OUTPUT)perf @@ -715,7 +707,7 @@ all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BI= NDINGS) $(OTHER_PROGRAMS) # Create python binding output directory if not already present $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python') =20 -$(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHO= N_EXT_DEPS) $(PERFLIBS) +$(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): util/python.c util/setup.p= y $(PERFLIBS) $(QUIET_GEN)LDSHARED=3D"$(CC) -pthread -shared" \ CFLAGS=3D'$(CFLAGS)' LDFLAGS=3D'$(LDFLAGS) $(LIBS)' \ $(PYTHON_WORD) util/setup.py \ diff --git a/tools/perf/util/python-ext-sources b/tools/perf/util/python-ex= t-sources deleted file mode 100644 index 1bec945f4838..000000000000 --- a/tools/perf/util/python-ext-sources +++ /dev/null @@ -1,53 +0,0 @@ -# -# List of files needed by perf python extension -# -# Each source file must be placed on its own line so that it can be -# processed by Makefile and util/setup.py accordingly. -# - -util/python.c -../lib/ctype.c -util/cap.c -util/evlist.c -util/evsel.c -util/evsel_fprintf.c -util/perf_event_attr_fprintf.c -util/cpumap.c -util/memswap.c -util/mmap.c -util/namespaces.c -../lib/bitmap.c -../lib/find_bit.c -../lib/list_sort.c -../lib/hweight.c -../lib/string.c -../lib/vsprintf.c -util/thread_map.c -util/util.c -util/cgroup.c -util/parse-branch-options.c -util/rblist.c -util/counts.c -util/print_binary.c -util/strlist.c -util/trace-event.c -util/trace-event-parse.c -../lib/rbtree.c -util/string.c -util/symbol_fprintf.c -util/units.c -util/affinity.c -util/rwsem.c -util/hashmap.c -util/perf_regs.c -util/fncache.c -util/rlimit.c -util/perf-regs-arch/perf_regs_aarch64.c -util/perf-regs-arch/perf_regs_arm.c -util/perf-regs-arch/perf_regs_csky.c -util/perf-regs-arch/perf_regs_loongarch.c -util/perf-regs-arch/perf_regs_mips.c -util/perf-regs-arch/perf_regs_powerpc.c -util/perf-regs-arch/perf_regs_riscv.c -util/perf-regs-arch/perf_regs_s390.c -util/perf-regs-arch/perf_regs_x86.c --=20 2.45.2.741.gdbec12cfda-goog