Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
	openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] bitbake.conf: add BB_NUMBER_THREADS to BB_HASHEXCLUDE_COMMON
Date: Mon, 28 Feb 2022 14:57:15 +0000	[thread overview]
Message-ID: <fdd9e9a9d65e5bc5531718ca3d831cf98d15e9c0.camel@linuxfoundation.org> (raw)
In-Reply-To: <c60f6d60-ff47-d91a-e97b-6a545c878e71@prevas.dk>

On Mon, 2022-02-28 at 15:06 +0100, Rasmus Villemoes wrote:
> On 28/02/2022 14.41, Richard Purdie wrote:
> > On Mon, 2022-02-28 at 09:42 +0100, Rasmus Villemoes wrote:
> > > The imx-gpu-sdk recipe in the meta-imx layer references
> > > ${BB_NUMBER_THREADS} in its do_compile function. Changing
> > > BB_NUMBER_THREADS between bitbake invocations leads to the well-known
> > > 
> > >   When reparsing ...meta-imx/meta-sdk/recipes-graphics/imx-gpu-sdk/imx-gpu-sdk_5.8.0.bb:do_compile, the basehash value changed from 69be88cf220840ff2203e11cfe65681880b0bf9b88db67d50c1ba772b883bd18 to 5e6d5029fac8d7856ada4c2eca359568298f82cdb64567d7dd4deda503d9f83a. The metadata is not deterministic and this needs to be fixed.
> > > 
> > > And I'm not the first to hit this problem with that recipe:
> > > https://community.nxp.com/t5/i-MX-Processors/imx-gpu-sdk-compile-error-IMX8MP-IMX8MM-IMX8MQ/td-p/1217864
> > > 
> > > This happens because BB_NUMBER_THREADS is in BB_HASHCONFIG_IGNORE_VARS,
> > > so changing it does not cause the recipe to be reparsed, but it is not
> > > included in BB_HASHEXCLUDE_COMMON and thus
> > > BB_BASEHASH_IGNORE_VARS. This is inconsistent with and in contrast to
> > > both PARALLEL_MAKE and OMP_NUM_THREADS, the latter of which even has
> > > ${BB_NUMBER_THREADS} as default value.
> > 
> > Technically imx-gpu-sdk is incorrect. BB_NUMBER_THREADS is the number of tasks
> > bitbake should run. PARALLEL_MAKE is what is used for parallelism in do_compile.
> > 
> > I appreciate that has -j in but you can use: ${@oe.utils.parallel_make(d)} to
> > obtain the value that recipe needs.
> 
> Oh, I'm not saying that that recipe isn't buggy, but is still seems
> awfully user-unfriendly and inconsistent to treat BB_NUMBER_THREADS
> different from PARALLEL_MAKE wrt. hash computations.

The reasoning is that nothing should be using BB_NUMBER_THREADS like that. Your
patch would just mask it even more :/. Ideally we'd have something to tell
people they were misusing it but that is harder to do.

> But now I've raised the issue, and I don't care much what happens next;
> I now know the root cause of the error I saw and rarely build using
> meta-imx in the first place.

Just to check, are the meta-imx people aware of it and able to fix the real
problem?

Cheers,

Richard




  reply	other threads:[~2022-02-28 14:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-28  8:42 [PATCH] bitbake.conf: add BB_NUMBER_THREADS to BB_HASHEXCLUDE_COMMON Rasmus Villemoes
2022-02-28 13:41 ` Richard Purdie
2022-02-28 14:06   ` Rasmus Villemoes
2022-02-28 14:57     ` Richard Purdie [this message]
2022-02-28 15:01       ` [OE-core] " Tom Hochstein

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fdd9e9a9d65e5bc5531718ca3d831cf98d15e9c0.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=rasmus.villemoes@prevas.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox