Re: [GIT PULL] tools/perf/build: Speed up the perf build system

From: Ingo Molnar
Date: Wed Oct 09 2013 - 10:52:07 EST



* Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx> wrote:

> Em Wed, Oct 09, 2013 at 09:01:49AM +0200, Ingo Molnar escreveu:
> > Arnaldo,
> >
> > Please pull the tools/perf/build git tree from:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tmp.tools/perf/build
> >
> > # HEAD: 165108a92fc554d51e73b143b69b77e7c278da78 tools/perf/build: Clean up feature_print_code()
> >
> > This tree contains the build system speedup series described at:
> >
> > https://lkml.org/lkml/2013/10/7/199
> >
> > Reviewed by David Ahern and Jiri Olsa (thanks guys!).
>
> One problem I just noticed, and that is not preventing me from merging
> this now, as it has a (obvious) workaround:
>
> If I try using O= I better make sure the directory it points to exists:
>
> [acme@sandy linux]$ ls -la tools/perf/*.o tools/perf/util/*.o
> ls: cannot access tools/perf/*.o: No such file or directory
> ls: cannot access tools/perf/util/*.o: No such file or directory
> [acme@sandy linux]$ mkdir -p /tmp/build/perf/
> [acme@sandy linux]$ time make O=/tmp/build/perf -C tools/perf/ install-bin
> make: Entering directory `/home/acme/git/linux/tools/perf'
> BUILD: Doing 'make -j8' parallel build
>
> Auto-detecting system features:
> ... backtrace: [ on ]
> ... dwarf: [ on ]
> <SNIP>
> make: Leaving directory `/home/acme/git/linux/tools/perf'
>
> real 0m2.751s
> user 0m4.270s
> sys 0m1.240s
> [acme@sandy linux]$ ls -la tools/perf/*.o tools/perf/util/*.o
> ls: cannot access tools/perf/*.o: No such file or directory
> ls: cannot access tools/perf/util/*.o: No such file or directory
> [acme@sandy linux]$ ls -la /tmp/build/perf/perf
> -rwxrwxr-x. 1 acme acme 9791281 Oct 9 11:32 /tmp/build/perf/perf
> [acme@sandy linux]$
>
> ---------------------------------------------------------------------------------
>
> Works as expected, but if I do:
>
> [acme@sandy linux]$ rm -rf /tmp/build
> [acme@sandy linux]$ time make O=/tmp/build/perf -C tools/perf/ install-bin
> make: Entering directory `/home/acme/git/linux/tools/perf'
> BUILD: Doing 'make -j8' parallel build
>
> Auto-detecting system features:
> ... backtrace: [ on ]
> <SNIP>
> make: Leaving directory `/home/acme/git/linux/tools/perf'
>
> real 0m2.715s
> user 0m4.118s
> sys 0m1.204s
> [acme@sandy linux]$ ls -la tools/perf/*.o tools/perf/util/*.o | wc -l
> 94
> [acme@sandy linux]$ ls -la /tmp/build
> ls: cannot access /tmp/build: No such file or directory
> [acme@sandy linux]$
>
> ---------------------------------------------------------------------------------
>
> It silently ignores the O= target, as it doesn't exists.
>
> Previous, expected behaviour is for the build process to stop,
> complaining that the target directory doesn't exists.

Yeah. So the reproducer for me is:

rm -rf /tmp/build
mkdir -p /tmp/build/perf
make O=/tmp/build/perf -C tools/perf/ install-bin
rm -rf /tmp/build
make O=/tmp/build/perf -C tools/perf/ install-bin

the second install-bin should fail, and on the old tree it fails correctly
- but with the new tree it pretends that it succeeds.

Looking into it.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/