Re: [PATCH 1/5] perf tools: Add read_all_cgroups() and __cgroup_find()

From: Namhyung Kim
Date: Wed Sep 06 2023 - 12:43:17 EST


Hi Arnaldo,

On Wed, Sep 6, 2023 at 8:41 AM Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
>
> Em Wed, Sep 06, 2023 at 12:38:17PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Wed, Aug 30, 2023 at 04:01:22PM -0700, Namhyung Kim escreveu:
> > > The read_all_cgroups() is to build a tree of cgroups in the system and
> > > users can look up a cgroup using __cgroup_find().
> >
> > ⬢[acme@toolbox perf-tools-next]$ alias m='make -k BUILD_BPF_SKEL=1 CORESIGHT=1 O=/tmp/build/perf-tools-next -C tools/perf install-bin && git status && perf test python'
> > ⬢[acme@toolbox perf-tools-next]$ m
> > make: Entering directory '/var/home/acme/git/perf-tools-next/tools/perf'
> > BUILD: Doing 'make -j32' parallel build
> > Warning: Kernel ABI header differences:
> > diff -u tools/include/uapi/linux/perf_event.h include/uapi/linux/perf_event.h
> > diff -u tools/arch/x86/include/asm/cpufeatures.h arch/x86/include/asm/cpufeatures.h
> > diff -u tools/arch/x86/include/asm/msr-index.h arch/x86/include/asm/msr-index.h
> > diff -u tools/arch/arm64/include/uapi/asm/perf_regs.h arch/arm64/include/uapi/asm/perf_regs.h
> >
> > INSTALL libsubcmd_headers
> > INSTALL libperf_headers
> > INSTALL libapi_headers
> > INSTALL libsymbol_headers
> > INSTALL libbpf_headers
> > CC /tmp/build/perf-tools-next/builtin-lock.o
> > CC /tmp/build/perf-tools-next/util/bpf_lock_contention.o
> > builtin-lock.c: In function ‘__cmd_contention’:
> > builtin-lock.c:2162:9: error: too few arguments to function ‘lock_contention_finish’
> > 2162 | lock_contention_finish();
> > | ^~~~~~~~~~~~~~~~~~~~~~
> > In file included from builtin-lock.c:14:
> > util/lock-contention.h:156:5: note: declared here
> > 156 | int lock_contention_finish(struct lock_contention *con);
> > | ^~~~~~~~~~~~~~~~~~~~~~
> > make[3]: *** [/var/home/acme/git/perf-tools-next/tools/build/Makefile.build:97: /tmp/build/perf-tools-next/builtin-lock.o] Error 1
> > make[3]: *** Waiting for unfinished jobs....
> > util/bpf_lock_contention.c: In function ‘lock_contention_get_name’:
> > util/bpf_lock_contention.c:231:34: error: ‘struct contention_key’ has no member named ‘lock_addr_or_cgroup’
> > 231 | u64 cgrp_id = key->lock_addr_or_cgroup;
> > | ^~
> > make[4]: *** [/var/home/acme/git/perf-tools-next/tools/build/Makefile.build:97: /tmp/build/perf-tools-next/util/bpf_lock_contention.o] Error 1
> > make[3]: *** [/var/home/acme/git/perf-tools-next/tools/build/Makefile.build:150: util] Error 2
> > make[2]: *** [Makefile.perf:662: /tmp/build/perf-tools-next/perf-in.o] Error 2
> > make[1]: *** [Makefile.perf:238: sub-make] Error 2
> > make: *** [Makefile:113: install-bin] Error 2
> > make: Leaving directory '/var/home/acme/git/perf-tools-next/tools/perf'
> > ⬢[acme@toolbox perf-tools-next]$
> >
> > Trying to figure this out.
>
> So it works on the following patch:
>
> ⬢[acme@toolbox perf-tools-next]$ git log --oneline -5
> 94a54d498ae35c66 (HEAD) perf lock contention: Add -g/--lock-cgroup option
> defe88978441a00d perf lock contention: Prepare to handle cgroups
> cc0717270d2f0daa perf cgroup: Add read_all_cgroups() and __cgroup_find()
> 752d73a1dd62cd4a perf shell completion: Support completion of metrics/metricgroups
> 72aa5816258bf9fe perf completion: Support completion of libpfm4 events
> ⬢[acme@toolbox perf-tools-next]$
>
> Please check and submit a v2.

Thanks for the report, I'll fix it.

Thanks,
Namhyung