On Mon, 2013-11-11 at 17:54 +0000, Barros Pena, Belen wrote:
> It's been brought to my attention that we need to find a way to present
> noexec tasks in Toaster (tasks with [noexec] = "1" set). I am trying to
> figure out a way to fit them in the Toaster task classification, but I
> think I am missing some context.
> 
> Can someone explain how that [noexec] flag came to be and why was it
> needed? A bit of history might help me come up with the right solution.

When bitbake executes tasks, it forks off a new process which then sets
up the environment and executes the task. This has overhead.

We had a number of cases where we had "placeholder" tasks which were
present for dependency reasons but were otherwise empty and had nothing
to execute. We therefore decided to mark them "noexec" i.e. they have no
executable content.

Bitbake now knows that when it sees a noexec task, its there for
dependency reasons only and it can skip the execution part which is good
for performance.

To see what I mean about dependency information, think about our
packaging process. We have points in the build where we need to say
"everything packaged" but don't care about specific package types.
We therefore have a noexec do_package_write task which depends on
do_package_write_{ipk,deb,rpm} depending on which are configured.

There are also cases where we know the task will not do anything (e.g.
package tasks of -native recipes). Marking them noexec means we can skip
them faster.

Does that help?

Cheers,

Richard

_______________________________________________
toaster mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/toaster

Reply via email to