[poky] about 'noexec' message

Richard Purdie richard.purdie at linuxfoundation.org
Thu Dec 16 07:19:14 PST 2010


On Thu, 2010-12-16 at 17:48 +0800, Tian, Kevin wrote:
> >From: Tian, Kevin
> >Sent: Thursday, December 16, 2010 4:46 PM
> >
> >>From: Gary Thomas [mailto:gary at mlbassoc.com]
> >>Sent: Thursday, December 16, 2010 12:10 AM
> >>
> >>Note to Richard: I'm still seeing a ton of Noexec messages every time I rebuild
> >>a package in this tree.  I thought I understood you to say they should happen
> >>at most once?
> >>
> >
> >Yes, RP's previous patch does reduce the Noexec messages a lot. However there
> >remains one problem. Current stamp file check also calculates the stamp of tasks
> >depended on. If those stamps are newer or not exist, the check return False to
> >indicate mismatched stamp.
> >
> >In 'noexec' case, some 'noexec' tasks happen to have some dependent tasks
> >skipped which thus don't generate stamp files. This makes the check always
> >failed for those 'noexec' tasks and thus you always observe the Noexec messages.
> >
> >I have a patch to fix that, and will send out soon. :-)
> >
> 
> Though I managed to remove the rest 'noexec' messages by adding below in 
> check_stamp_task():
> 
> 	if 'noexec' in taskdep and taskname in taskdep['noexec']
> 		return True
> 
> I realized there's one potential risk. Though 'noexec' task is not executed at all,
> it's considered to be a normal task which normally plays the role of the sync
> points. Ideally if there're changes on stamp file of tasks that this 'noexec' task
> depends on, we still want to generate a new stamp file for the 'noexec' task.
> That way other tasks depending on that 'noexec' task will trigger rebuild too.
> 
> If we always take 'noexec' task away from the comparison, above chain effect
> disappears.
> 
> Current comparison condition for stamp files is:
> 
> 	if not t2 or t1 < t2
> 		iscurrent = False
> 
> I'm not sure under which case a stamp file (t2) doesn't exist, and whether it's
> safe to use:
> 	if not t2 and not noexec or t2 and t1 < t2:
> 		iscurrent = False
> 
> to check stamp file for 'noexec' task.
> 
> Or alternative is to simply convert bb.note to bb.debug for 'noexec' message. :-)

I've looked at this and realised that scenequeue should not be trying to
skip noexec tasks as this means the stamps don't get generated. Instead,
it should just failoutright and let the secondary code in the main
runqueue deal with them at the correct point in time.

I've pushed this change, lets see if it solves the issues people have
been seeing. It certainly makes the output from bitbake more readable
again.

Cheers,

Richard




More information about the poky mailing list