Re: arm/arm64 perf build issue with mainline

From: Ingo Molnar
Date: Mon May 11 2015 - 04:21:31 EST



* David Ahern <david.ahern@xxxxxxxxxx> wrote:

> On 4/23/15 5:29 AM, Will Deacon wrote:
> >Hi all,
> >
> >Commit 6428c59a97de ("perf tools: Set JOBS based on CPU or processor")
> >causes weird behaviour on arm/arm64 platforms because we use the "CPU"
> >prefix for things like:
> >
> >CPU implementer : 0x41
> >CPU architecture: 8
> >CPU variant : 0x0
> >CPU part : 0xd03
> >CPU revision : 0
> >
> >in /proc/cpuinfo. Consequently, a 6 core machine ends up doing:
> >
> >will@confinement-loaf:~/linux/tools/perf$ make
> > BUILD: Doing 'make -j36' parallel build
> >
> >which is a little overwhelming. Any chance we can predicate the extra
> >part of the regex on $(ARCH) being sparc?

That regex needs to be fixed or replaced with a more robust 'number of
CPUs on the system' discovery method.

> Frankly, I think the JOBS parameter needs to be removed. It's
> non-standard way of controlling parallelism in the build and it
> makes the assumption that if a system has N processors all of those
> can be used to build perf which is not true if you are building perf
> as part of bigger image builds -- like Yocto for example.
>
> Ingo: As I recall you put this in? Opinions on removing it?

I disagree strongly!

> [...] Users can always add the standard '-j N' for parallelism just
> like they do for kernel builds.

So for a few oddball cases we remove something that improves usability
quite visibly? 'make' or 'make install' will do the right thing today
on 99.9% of the systems, and it should do that in the future as well.

We should not add extra usability barriers that hurts the regular
case.

This usability concept permeates all of perf: that's why 'perf top'
will measure all CPUs by default, although there are certainly cases
where that's not what the user wants.

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/