[bitbake-devel] New progress meters

Paul Eggleton paul.eggleton at linux.intel.com
Thu Feb 9 04:09:20 UTC 2017


On Wednesday, 8 February 2017 8:14:11 PM NZDT Trevor Woerner wrote:
> On Wed 2016-07-20 @ 08:29:52 AM, Paul Eggleton wrote:
>        ^^^^^^^^^^
> ... talk about showing up late to the party! ;-)

It's never too late :)

> > We can certainly do something like that - the progress handler sees all
> > output even if it doesn't contain anything interesting to it (e.g. %
> > complete). The trouble comes when the process prints out nothing - such
> > as when linking a very large binary. I'm not sure how you would
> > introspect into that part of the process.
> 
> Would it be possible to show progress such that once a recipe started to be
> processed, it would remain in view until it was done (preferably in the same
> relative location)?
> 
> Let's say you have a recipe abc.bb whose tasks are: fetch, unpack, patch,
> configure, compile, deploy, package. I think it might be nice if, once
> bitbake started processing abc, we saw something like:
> 
> 
> 	before-4.5.6 ...
> 	abc-1.2.3 do_fetch ===>
> 	after-0.9.8 ...
> 
> Then when the fetch was done we'd see
> 
> 	before-4.5.6 ...
> 	abc-1.2.3 do_unpack ===|==>
> 	after-0.9.8 ...
> 
> then
> 
> 	before-4.5.6 ...
> 	abc-1.2.3 do_patch ===|===|=>
> 	after-0.9.8 ...
> 
> 
> Or, maybe:
> 
> 	before-4.5.6 ...
> 	abc-1.2.3  =fetch=
> 	after-0.9.8 ...
> 
> 	before-4.5.6 ...
> 	abc-1.2.3  =fetch=|=unpack=
> 	after-0.9.8 ...
> 
> 	before-4.5.6 ...
> 	abc-1.2.3  =fetch=|=unpack=|=patch=
> 	after-0.9.8 ...
> 
> Maybe the different tasks could have their own colours? Perhaps the equals
> signs could be used to show progress: as a task progresses more equals signs
> would be printed, then the pipe drawn and the new task drawing started when
> the next task begins? At the end of processing abc we might see something
> like:
> 
> 	abc-1.2.3
> =fetch===========|=unpack=|=patch=|=configure====|=compile=================
> ==========================|=deploy===|=package==
> 
> which tells us that fetching and compiling were this recipe's largest jobs.
> 
> I guess the largest problem would be handling the vertical real-estate. With
> hundreds of packages, the output would scroll off rather quickly. Maybe
> once a recipe was complete it could drop off?

So this is an interesting idea. The challenge though as I mentioned in my 
previous email is about knowing how long the task is going to take - right now 
we only have this for a few tasks. In this case you would use that to scale 
the bar for each task with respect to the screen width - if you don't have 
this scaling then either horizontal real-estate is going to be an additional 
problem, or there won't be any ability to compare the task times (at least 
within the same recipe - this would prevent comparing between recipes).

Whilst we could get an approximation of total task time if we know how long 
the log file is expected to be, I still haven't figured out a good way of 
having even that information available before the build, though I have to 
admit I haven't spent much time thinking about it since the changes went in.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the bitbake-devel mailing list