Re: [PATCH] perf session: Fix undeclared 'oe'

From: Greg Kroah-Hartman
Date: Mon Apr 30 2018 - 13:20:24 EST


On Mon, Apr 30, 2018 at 02:11:55PM -0300, Murilo Opsfelder Araujo wrote:
> On 04/11/2018 05:21 PM, Murilo Opsfelder AraÃjo wrote:
> > On 04/11/2018 04:33 PM, Greg Kroah-Hartman wrote:
> >> On Wed, Apr 11, 2018 at 03:41:35PM -0300, Murilo Opsfelder Araujo wrote:
> >>> Using linux-3.18.y branch, perf build fails with the following:
> >>>
> >>> $ make -s -j16 -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=/usr DESTDIR=/tmp/builddir/build all
> >>> [...]
> >>> util/session.c: In function â__perf_session__process_pipe_eventsâ:
> >>> util/session.c:1093:36: error: âoeâ undeclared (first use in this function)
> >>> ordered_events__set_copy_on_queue(oe, true);
> >>> ^
> >>> util/session.c:1093:36: note: each undeclared identifier is reported only once for each function it appears in
> >>>
> >>> This patch fixes it for linux-3.18.y branch.
> >>
> >> Why is this failing now? Has it always been broken? Is there an
> >> upstream patch that fixed this instead?
> >>
> >
> > Hi, Greg.
> >
> > We've caught this build issue this week. I'm not sure since when it's
> > failing.
> >
> > The upstream patch that fixes this is:
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fa713a4eb9cebe5dec71b1bd11429603e17d841d
> >
> > commit fa713a4eb9cebe5dec71b1bd11429603e17d841d
> > Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> > Date: Tue Mar 3 11:48:12 2015 -0300
> >
> > perf ordered_events: Untangle from perf_session
> >
> > But it doesn't apply straightforwardly. At
> > fa713a4eb9cebe5dec71b1bd11429603e17d841d, perf API and perf_evlist
> > struct are slightly different from linux-3.18.y.
> >
> > A list of upstream patches for a clean backport (I think) would be:
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=54245fdc357613633954bfd38cffb71cb9def067
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=75be989a7a18e9666efd92b846ee48bed79e8086
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=313e53b08e99b1dacf9ea2b0fbe97890db1ea95f
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fa8727aa4d98d35ca50ef9cd8a50c6468af921d
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fa713a4eb9cebe5dec71b1bd11429603e17d841d
> >
> > Do you prefer all above patches backported to linux-3.18.y or just the
> > one-line fix I sent?
> >
> >>> Fixes: 95b33b99cdd6 ("perf inject: Copy events when reordering events in pipe mode")
> >>
> >> Was this just a bad backport?
> >
> > Some patches were left behind, I guess.
> >
> >>
> >> thanks,
> >>
> >> greg k-h
>
> Hi, Greg.
>
> I've realized that perf build on v3.18.107 is still broken, actually, it
> got a bit worse than v3.18.104.
>
> After applying my patch to fix the undeclared 'oe', perf build fails
> with the following errors:
>
> $ make -s -j16 -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1
> HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1
> prefix=/usr DESTDIR=/tmp/builddir/build all
> [...]
> tests/code-reading.c: In function âread_object_codeâ:
> tests/code-reading.c:145:19: error: âKMOD_DECOMP_LENâ undeclared (first
> use in this function)
> char decomp_name[KMOD_DECOMP_LEN];
> ^
> tests/code-reading.c:145:19: note: each undeclared identifier is
> reported only once for each function it appears in
> tests/code-reading.c:208:2: warning: implicit declaration of function
> âdso__needs_decompressâ [-Wimplicit-function-declaration]
> if (dso__needs_decompress(al.map->dso)) {
> ^
> tests/code-reading.c:208:2: warning: nested extern declaration of
> âdso__needs_decompressâ [-Wnested-externs]
> tests/code-reading.c:209:3: warning: implicit declaration of function
> âdso__decompress_kmodule_pathâ [-Wimplicit-function-declaration]
> if (dso__decompress_kmodule_path(al.map->dso, objdump_name,
> ^
> tests/code-reading.c:209:3: warning: nested extern declaration of
> âdso__decompress_kmodule_pathâ [-Wnested-externs]
> tests/code-reading.c:145:7: warning: unused variable âdecomp_nameâ
> [-Wunused-variable]
> char decomp_name[KMOD_DECOMP_LEN];
> ^
>
> Apparently, this was introduced by commit
> 091b3b4ba55daf8b28f40794aefdaa0bdb5af7a1:
>
> commit 091b3b4ba55daf8b28f40794aefdaa0bdb5af7a1
> Author: Namhyung Kim <namhyung@xxxxxxxxxx>
> Date: Thu Jun 8 16:31:07 2017 +0900
>
> perf tests: Decompress kernel module before objdump
>
>
> Namhyung, are you fixing this?

Ugh, I can fix this, I just did so on 4.4.y...

greg k-h