From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Daniel Levin <dendy.ua@gmail.com>, bitbake-devel@lists.openembedded.org
Subject: Re: Conditional DAG recalculation at build time
Date: Thu, 05 Apr 2018 17:57:02 +0100 [thread overview]
Message-ID: <1522947422.11431.433.camel@linuxfoundation.org> (raw)
In-Reply-To: <CAAvz69xX76ukua1z=t9OxeXKxx_K=UFO_C47QDux-nCSN_eZwg@mail.gmail.com>
On Mon, 2018-01-29 at 23:06 -0800, Daniel Levin wrote:
> In short: does bitbake support dependency graph recalculation at
> build time?
>
> I am looking for a dependency resolution similar to BYPRODUCTS in
> CMake and restat in Ninja.
>
> In other words when task _after_ execution might tell that output did
> not actually change. So all dependencies of that target should not be
> updated. Even when initially they were treated as (potentially) to be
> updated.
>
> Usually in CMake that results in remaining task count decreased
> instantly during build time, because in fact they must not be
> running.
>
> I found documentation in bitbake about task _input_ checksum, which
> is used to evaluate whether task need to be executed.
> So I am looking for the similar checksum for the task _output_. And
> when task does not change that output checksum means that
> dependencies of that output does not need to be triggered.
>
> If this topic is well known and documented then could you please
> point me to the appropriate section in the documentation?
There are mailing list posts from me a long time ago when we added
checksum support and sstate explaining why we use input values rather
than outputs and the pros/cons of either.
Also, more recently, have a read of the thread "[yocto] RFC: Backwards
compatibility checking sstate-cache" on the yocto list. Its a similar
request.
My own thoughts are that the best way forward would be some kind of
equivalence server so that we could remap sstate values back to a
master value.
The first step would be to allow such a server to exist and to allow
resolution of a hash to a master base value.
Allowing bitbake to recalculate its taskgraph and dynamically adapt to
this would then be a secondary step in the interests of efficiency.
The first piece would be minimally invasive. The second piece would
mean huge changes to the way bitbake operates.
I'm not sure if anyone is pursuing this but its an interesting topic
I've given a bit of thought to.
Cheers,
Richard
prev parent reply other threads:[~2018-04-05 16:57 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-30 7:06 Conditional DAG recalculation at build time Daniel Levin
2018-04-05 16:09 ` Christopher Larson
2018-04-05 16:57 ` Richard Purdie [this message]
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=1522947422.11431.433.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=bitbake-devel@lists.openembedded.org \
--cc=dendy.ua@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.