[OE-core] [PATCH] perf: disable parallelism for 'make clean'

Rasmus Villemoes rasmus.villemoes at prevas.dk
Fri Jul 6 07:26:26 UTC 2018


On 2018-07-06 00:18, Andre McCurdy wrote:
> On Thu, Jul 5, 2018 at 1:55 PM, Rasmus Villemoes
> <rasmus.villemoes at prevas.dk> wrote:
>> Whenever perf got rebuilt, I was consistently getting errors such as
>>
>> | find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory
>> | find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory
>> | find: find: '[...]/perf/1.0-r9/perf-1.0/libtraceevent.a''[...]/perf/1.0-r9/perf-1.0/libtraceevent.a': No such file or directory: No such file or directory
>> |
>> [...]
>> | find: cannot delete '/mnt/xfs/devel/pil/yocto/tmp-glibc/work/wandboard-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/util/.pstack.o.cmd': No such file or directory
>>
>> breaking the whole build. The root cause seems to be that the implicit
>> 'make clean' done during do_configure ends up running in parallel, and
>> thus multiple find commands attempt to stat and/or delete the same
>> file.
>>
>> This patch of tools/perf/Makefile has been ack'ed
>> upstream (lkml.kernel.org/r/20180705134955.GB3686 at krava). Since the sed
>> script matches exactly the lines
>>
>> clean:
>>         $(make)
>>
>> it should be harmless to have this even with a fixed kernel, and it can
>> be removed if and when all relevant -stable kernels have it.
> 
> If it works, then something like this might be a cleaner solution:
> 
>   EXTRA_OEMAKE_append_task-configure = " -j1"

tools/perf/Makefile explicitly ignores a -j argument, and computes its
own value. But one can pass JOBS=1 instead. I'll try that and resend.

Rasmus



More information about the Openembedded-core mailing list