summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 6ce0ce80f6..10511a09dc 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -85,15 +85,19 @@ class RunQueueStats:
85 """ 85 """
86 Holds statistics on the tasks handled by the associated runQueue 86 Holds statistics on the tasks handled by the associated runQueue
87 """ 87 """
88 def __init__(self, total): 88 def __init__(self, total, setscene_total):
89 self.completed = 0 89 self.completed = 0
90 self.skipped = 0 90 self.skipped = 0
91 self.failed = 0 91 self.failed = 0
92 self.active = 0 92 self.active = 0
93 self.setscene_active = 0
94 self.setscene_covered = 0
95 self.setscene_notcovered = 0
96 self.setscene_total = setscene_total
93 self.total = total 97 self.total = total
94 98
95 def copy(self): 99 def copy(self):
96 obj = self.__class__(self.total) 100 obj = self.__class__(self.total, self.setscene_total)
97 obj.__dict__.update(self.__dict__) 101 obj.__dict__.update(self.__dict__)
98 return obj 102 return obj
99 103
@@ -112,6 +116,13 @@ class RunQueueStats:
112 def taskActive(self): 116 def taskActive(self):
113 self.active = self.active + 1 117 self.active = self.active + 1
114 118
119 def updateCovered(self, covered, notcovered):
120 self.setscene_covered = covered
121 self.setscene_notcovered = notcovered
122
123 def updateActiveSetscene(self, active):
124 self.setscene_active = active
125
115# These values indicate the next step due to be run in the 126# These values indicate the next step due to be run in the
116# runQueue state machine 127# runQueue state machine
117runQueuePrepare = 2 128runQueuePrepare = 2
@@ -1735,7 +1746,7 @@ class RunQueueExecute:
1735 self.holdoff_need_update = True 1746 self.holdoff_need_update = True
1736 self.sqdone = False 1747 self.sqdone = False
1737 1748
1738 self.stats = RunQueueStats(len(self.rqdata.runtaskentries)) 1749 self.stats = RunQueueStats(len(self.rqdata.runtaskentries), len(self.rqdata.runq_setscene_tids))
1739 1750
1740 for mc in rq.worker: 1751 for mc in rq.worker:
1741 rq.worker[mc].pipe.setrunqueueexec(self) 1752 rq.worker[mc].pipe.setrunqueueexec(self)
@@ -1786,6 +1797,7 @@ class RunQueueExecute:
1786 else: 1797 else:
1787 self.sq_task_complete(task) 1798 self.sq_task_complete(task)
1788 self.sq_live.remove(task) 1799 self.sq_live.remove(task)
1800 self.stats.updateActiveSetscene(len(self.sq_live))
1789 else: 1801 else:
1790 if status != 0: 1802 if status != 0:
1791 self.task_fail(task, status, fakerootlog=fakerootlog) 1803 self.task_fail(task, status, fakerootlog=fakerootlog)
@@ -2087,6 +2099,7 @@ class RunQueueExecute:
2087 self.build_stamps2.append(self.build_stamps[task]) 2099 self.build_stamps2.append(self.build_stamps[task])
2088 self.sq_running.add(task) 2100 self.sq_running.add(task)
2089 self.sq_live.add(task) 2101 self.sq_live.add(task)
2102 self.stats.updateActiveSetscene(len(self.sq_live))
2090 if self.can_start_task(): 2103 if self.can_start_task():
2091 return True 2104 return True
2092 2105
@@ -2462,6 +2475,7 @@ class RunQueueExecute:
2462 self.sq_task_failoutright(tid) 2475 self.sq_task_failoutright(tid)
2463 2476
2464 if changed: 2477 if changed:
2478 self.stats.updateCovered(len(self.scenequeue_covered), len(self.scenequeue_notcovered))
2465 self.holdoff_need_update = True 2479 self.holdoff_need_update = True
2466 2480
2467 def scenequeue_updatecounters(self, task, fail=False): 2481 def scenequeue_updatecounters(self, task, fail=False):
@@ -2495,6 +2509,7 @@ class RunQueueExecute:
2495 new.add(dep) 2509 new.add(dep)
2496 next = new 2510 next = new
2497 2511
2512 self.stats.updateCovered(len(self.scenequeue_covered), len(self.scenequeue_notcovered))
2498 self.holdoff_need_update = True 2513 self.holdoff_need_update = True
2499 2514
2500 def sq_task_completeoutright(self, task): 2515 def sq_task_completeoutright(self, task):