[bitbake-devel] [PATCH 10/10] runqueue: report progress for "Preparing RunQueue" step

Richard Purdie richard.purdie at linuxfoundation.org
Wed Jun 15 21:46:41 UTC 2016


On Tue, 2016-06-14 at 00:16 +1200, Paul Eggleton wrote:
> On Mon, 13 Jun 2016 12:09:33 Richard Purdie wrote:
> > On Mon, 2016-06-13 at 14:52 +1200, Paul Eggleton wrote:
> > > @@ -1119,14 +1150,19 @@ class RunQueue:
> > >          if self.state is runQueuePrepare:
> > >              self.rqexe = RunQueueExecuteDummy(self)
> > > 
> > > +            self.rqdata.init_progress_reporter =
> > > bb.progress.MultiStageProcessProgressReporter(self.cooker.data, +
> > >         
> > >                                                    "Initialising
> > > tasks",
> > > +                                                            [27,
> > > 870, 3,
> > > 33, 1, 3, 3, 2, 3, 6, 1, 13, 1, 1, 132, 32, 1, 61, 1, 13, 2, 243,
> > > 151,
> > > 299, 81, 1, 15, 72])> 
> > >              if self.rqdata.prepare() == 0:
> > >                  self.state = runQueueComplete
> > >              
> > >              else:
> > >                  self.state = runQueueSceneInit
> > > 
> > > +                self.rqdata.init_progress_reporter.next_stage()
> > 
> > I appreciate the difficulty in figuring some of this out and the
> > changes look quite neat on the most part. I am however very worried
> > by
> > the above from a code maintenance standpoint.
> > 
> > If for example I add or remove a step in runqueue, how do I know
> > where
> > in this array to make a change? How do I calculate what the new
> > weighting should be?
> 
> Actually with the current patchset it's pretty easy. Just temporarily
> specify 
> debug=True to the reporter when constructing and it will print out
> the list of 
> weightings (based on timing each stage) when finish() is called,
> along with a 
> map of the weightings to the lines where next_stage() was called.
> (Perhaps if 
> we'd want a comment to that effect for anyone editing this code.)

I think a comment in there about this would be helpful as it isn't
clear how to handle this. What does it do in the case you have a next()
call without a weight? Will that give a warning?

Cheers,

Richard



More information about the bitbake-devel mailing list