Re: [PATCH v6 00/16] perf tools: Use generic syscall scripts for all archs
From: Charlie Jenkins <hidden>
Date: 2025-01-14 19:27:37
Also in:
bpf, linux-doc, linux-perf-users, linux-riscv, linux-security-module, lkml
On Tue, Jan 14, 2025 at 02:58:26PM -0300, Arnaldo Carvalho de Melo wrote:
On Mon, Jan 13, 2025 at 11:55:05AM -0300, Arnaldo Carvalho de Melo wrote:quoted
On Fri, Jan 10, 2025 at 11:31:01AM -0800, Charlie Jenkins wrote:quoted
On Thu, Jan 09, 2025 at 03:00:59PM -0800, Charlie Jenkins wrote:quoted
Ooh okay I see, the quiet commands were being ignored as-is. We could add the lines to handle this to Makefile.syscalls, but I think the better solution is to move the lines from Makefile.build to Makefile.perf to be more generically available. Here is a patch for that. I also added the comment from the kernel Makefile describing what this does.quoted
quoted
From 8dcec7f5d937ede3d33c687573dc2f1654ddc59e Mon Sep 17 00:00:00 2001 From: Charlie Jenkins <redacted> Date: Thu, 9 Jan 2025 14:36:40 -0800 Subject: [PATCH] perf tools: Expose quiet/verbose variables in Makefile.perf The variables to make builds silent/verbose live inside tools/build/Makefile.build. Move those variables to the top-level Makefile.perf to be generally available.<SNIP applied patch>quoted
Let me know how you want to handle this, I can send this out as a separate patch if that's better.I used the patch you provided above after hand editing the message before feeding it to 'git am', added these comments:Somehow this is causing some trouble: ⬢ [acme@toolbox perf-tools-next]$ make -C tools/perf build-test make: Entering directory '/home/acme/git/perf-tools-next/tools/perf' - tarpkg: ./tests/perf-targz-src-pkg . /bin/sh: line 1: @make: command not found make[4]: *** [Makefile:27: clean-asm_pure_loop] Error 127 make[3]: *** [Makefile.perf:764: tests-coresight-targets-clean] Error 2 make[2]: *** [Makefile:96: clean] Error 2 make[1]: *** [tests/make:330: make_static] Error 2 make: *** [Makefile:109: build-test] Error 2 make: Leaving directory '/home/acme/git/perf-tools-next/tools/perf' ⬢ [acme@toolbox perf-tools-next]$ Can you please try fixing it as I'm busy now (I'll be on vacation from tomorrow till early February)? This is what I extracted:
There was an erroneous $(Q) in tools/perf/tests/shell/coresight/Makefile. Previously it would expand to the empty string so wouldn't cause any problems, but now it's in the middle of an expression so hence the error. I'll send an updated patch.
quoted hunk ↗ jump to hunk
commit c199fd785d18121ffd0ba5758e23a42ba2984e11 Author: Charlie Jenkins [off-list ref] Date: Mon Jan 13 11:50:55 2025 -0300 perf tools: Expose quiet/verbose variables in Makefile.perf The variables to make builds silent/verbose live inside tools/build/Makefile.build. Move those variables to the top-level Makefile.perf to be generally available. Committer testing: See the SYSCALL lines, now they are consistent with the other operations in other lines: SYSTBL /tmp/build/perf-tools-next/arch/x86/include/generated/asm/syscalls_32.h SYSTBL /tmp/build/perf-tools-next/arch/x86/include/generated/asm/syscalls_64.h GEN /tmp/build/perf-tools-next/common-cmds.h GEN /tmp/build/perf-tools-next/arch/arm64/include/generated/asm/sysreg-defs.h PERF_VERSION = 6.13.rc2.g3d94bb6ed1d0 GEN perf-archive MKDIR /tmp/build/perf-tools-next/jvmti/ MKDIR /tmp/build/perf-tools-next/jvmti/ MKDIR /tmp/build/perf-tools-next/jvmti/ MKDIR /tmp/build/perf-tools-next/jvmti/ GEN perf-iostat CC /tmp/build/perf-tools-next/jvmti/libjvmti.o CC /tmp/build/perf-tools-next/jvmti/jvmti_agent.o Reported-by: Arnaldo Carvalho de Melo [off-list ref] Signed-off-by: Charlie Jenkins [off-list ref] Tested-by: Arnaldo Carvalho de Melo [off-list ref] Cc: Adrian Hunter [off-list ref] Cc: Alexander Shishkin [off-list ref] Cc: Arnd Bergmann [off-list ref] Cc: Christian Brauner [off-list ref] Cc: Guo Ren [off-list ref] Cc: Günther Noack [off-list ref] Cc: Ian Rogers [off-list ref] Cc: Ingo Molnar [off-list ref] Cc: James Clark [off-list ref] Cc: Jiri Olsa [off-list ref] Cc: John Garry [off-list ref] Cc: Jonathan Corbet [off-list ref] Cc: Leo Yan [off-list ref] Cc: Mark Rutland [off-list ref] Cc: Mickaël Salaün [off-list ref] Cc: Mike Leach [off-list ref] Cc: Namhyung Kim [off-list ref] Cc: Palmer Dabbelt [off-list ref] Cc: Paul Walmsley [off-list ref] Cc: Peter Zijlstra [off-list ref] Cc: Will Deacon [off-list ref] Link: http://lore.kernel.org/lkml/None Signed-off-by: Arnaldo Carvalho de Melo [off-list ref]diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build index 5fb3fb3d97e0fd11..e710ed67a1b49d9f 100644 --- a/tools/build/Makefile.build +++ b/tools/build/Makefile.build@@ -12,26 +12,6 @@ PHONY := __build __build: -ifeq ($(V),1) - quiet = - Q = -else - quiet=quiet_ - Q=@ -endif - -# If the user is running make -s (silent mode), suppress echoing of commands -# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS. -ifeq ($(filter 3.%,$(MAKE_VERSION)),) -short-opts := $(firstword -$(MAKEFLAGS)) -else -short-opts := $(filter-out --%,$(MAKEFLAGS)) -endif - -ifneq ($(findstring s,$(short-opts)),) - quiet=silent_ -endif - build-dir := $(srctree)/tools/build # Define $(fixdep) for dep-cmd functiondiff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index a449d00155364422..55d6ce9ea52fb2a5 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf@@ -161,12 +161,47 @@ export VPATH SOURCE := $(shell ln -sf $(srctree)/tools/perf $(OUTPUT)/source) endif +# Beautify output +# --------------------------------------------------------------------------- +# +# Most of build commands in Kbuild start with "cmd_". You can optionally define +# "quiet_cmd_*". If defined, the short log is printed. Otherwise, no log from +# that command is printed by default. +# +# e.g.) +# quiet_cmd_depmod = DEPMOD $(MODLIB) +# cmd_depmod = $(srctree)/scripts/depmod.sh $(DEPMOD) $(KERNELRELEASE) +# +# A simple variant is to prefix commands with $(Q) - that's useful +# for commands that shall be hidden in non-verbose mode. +# +# $(Q)$(MAKE) $(build)=scripts/basic +# +# To put more focus on warnings, be less verbose as default +# Use 'make V=1' to see the full commands + ifeq ($(V),1) + quiet = Q = else - Q = @ + quiet=quiet_ + Q=@ endif +# If the user is running make -s (silent mode), suppress echoing of commands +# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS. +ifeq ($(filter 3.%,$(MAKE_VERSION)),) +short-opts := $(firstword -$(MAKEFLAGS)) +else +short-opts := $(filter-out --%,$(MAKEFLAGS)) +endif + +ifneq ($(findstring s,$(short-opts)),) + quiet=silent_ +endif + +export quiet Q + # Do not use make's built-in rules # (this improves performance and avoids hard-to-debug behaviour); MAKEFLAGS += -r