On Thu, Jan 09, 2025 at 03:00:59PM -0800, Charlie Jenkins wrote: > On Thu, Jan 09, 2025 at 06:51:06PM -0300, Arnaldo Carvalho de Melo wrote: > > On Thu, Jan 09, 2025 at 05:49:42PM -0300, Arnaldo Carvalho de Melo wrote: > > > BTW this series is already pushed out to perf-tools-next: > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/log/?h=perf-tools-next > > > > Hey, now I noticed that with this latest version we see: > > > > ⬢ [acme@toolbox perf-tools-next]$ m > > make: Entering directory '/home/acme/git/perf-tools-next/tools/perf' > > BUILD: Doing 'make -j28' parallel build > > Warning: Kernel ABI header differences: > > diff -u tools/arch/arm64/include/uapi/asm/unistd.h arch/arm64/include/uapi/asm/unistd.h > > > > Auto-detecting system features: > > ... libdw: [ on ] > > ... glibc: [ on ] > > ... libbfd: [ on ] > > ... libbfd-buildid: [ on ] > > ... libelf: [ on ] > > ... libnuma: [ on ] > > ... numa_num_possible_cpus: [ on ] > > ... libperl: [ on ] > > ... libpython: [ on ] > > ... libcrypto: [ on ] > > ... libunwind: [ on ] > > ... libcapstone: [ on ] > > ... llvm-perf: [ on ] > > ... zlib: [ on ] > > ... lzma: [ on ] > > ... get_cpuid: [ on ] > > ... bpf: [ on ] > > ... libaio: [ on ] > > ... libzstd: [ on ] > > > > /home/acme/git/perf-tools-next/tools/perf/scripts/syscalltbl.sh --abis common,32,i386 /home/acme/git/perf-tools-next/tools/perf/arch/x86/entry/syscalls/syscall_32.tbl /tmp/build/perf-tools-next/arch/x86/include/generated/asm/syscalls_32.h > > /home/acme/git/perf-tools-next/tools/perf/scripts/syscalltbl.sh --abis common,64 /home/acme/git/perf-tools-next/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl /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.gd73982c39183 > > GEN perf-archive > > GEN perf-iostat > > 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/ > > > > > > While with the previous one we would see something like SYSCALLTBL as > > the step name, like we have GEN, MKDIR, etc, can you take a look? > > 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. > > From 8dcec7f5d937ede3d33c687573dc2f1654ddc59e Mon Sep 17 00:00:00 2001 > From: Charlie Jenkins <charlie@xxxxxxxxxxxx> > 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. > > Signed-off-by: Charlie Jenkins <charlie@xxxxxxxxxxxx> > --- > tools/build/Makefile.build | 20 -------------------- > tools/perf/Makefile.perf | 37 ++++++++++++++++++++++++++++++++++++- > 2 files changed, 36 insertions(+), 21 deletions(-) > > diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build > index 5fb3fb3d97e0..e710ed67a1b4 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 function > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > index a449d0015536..55d6ce9ea52f 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 > -- > 2.34.1 > > > - Charlie Let me know how you want to handle this, I can send this out as a separate patch if that's better. - Charlie > > > > > All is out there in perf-tools-next. > > > > - Arnaldo