diff options
| -rw-r--r-- | bitbake/lib/bb/runqueue.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 17da1bc1a5..26c2d5177b 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
| @@ -201,21 +201,23 @@ class RunQueueScheduler(object): | |||
| 201 | now = time.time() | 201 | now = time.time() |
| 202 | tdiff = now - self.prev_pressure_time | 202 | tdiff = now - self.prev_pressure_time |
| 203 | psi_accumulation_interval = 1.0 | 203 | psi_accumulation_interval = 1.0 |
| 204 | cpu_pressure = (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) / tdiff | ||
| 205 | io_pressure = (float(curr_io_pressure) - float(self.prev_io_pressure)) / tdiff | ||
| 206 | memory_pressure = (float(curr_memory_pressure) - float(self.prev_memory_pressure)) / tdiff | ||
| 207 | exceeds_cpu_pressure = self.rq.max_cpu_pressure and cpu_pressure > self.rq.max_cpu_pressure | ||
| 208 | exceeds_io_pressure = self.rq.max_io_pressure and io_pressure > self.rq.max_io_pressure | ||
| 209 | exceeds_memory_pressure = self.rq.max_memory_pressure and memory_pressure > self.rq.max_memory_pressure | ||
| 210 | |||
| 204 | if tdiff > psi_accumulation_interval: | 211 | if tdiff > psi_accumulation_interval: |
| 205 | exceeds_cpu_pressure = self.rq.max_cpu_pressure and (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) / tdiff > self.rq.max_cpu_pressure | ||
| 206 | exceeds_io_pressure = self.rq.max_io_pressure and (float(curr_io_pressure) - float(self.prev_io_pressure)) / tdiff > self.rq.max_io_pressure | ||
| 207 | exceeds_memory_pressure = self.rq.max_memory_pressure and (float(curr_memory_pressure) - float(self.prev_memory_pressure)) / tdiff > self.rq.max_memory_pressure | ||
| 208 | self.prev_cpu_pressure = curr_cpu_pressure | 212 | self.prev_cpu_pressure = curr_cpu_pressure |
| 209 | self.prev_io_pressure = curr_io_pressure | 213 | self.prev_io_pressure = curr_io_pressure |
| 210 | self.prev_memory_pressure = curr_memory_pressure | 214 | self.prev_memory_pressure = curr_memory_pressure |
| 211 | self.prev_pressure_time = now | 215 | self.prev_pressure_time = now |
| 212 | else: | 216 | |
| 213 | exceeds_cpu_pressure = self.rq.max_cpu_pressure and (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) / tdiff > self.rq.max_cpu_pressure | ||
| 214 | exceeds_io_pressure = self.rq.max_io_pressure and (float(curr_io_pressure) - float(self.prev_io_pressure)) / tdiff > self.rq.max_io_pressure | ||
| 215 | exceeds_memory_pressure = self.rq.max_memory_pressure and (float(curr_memory_pressure) - float(self.prev_memory_pressure)) / tdiff > self.rq.max_memory_pressure | ||
| 216 | pressure_state = (exceeds_cpu_pressure, exceeds_io_pressure, exceeds_memory_pressure) | 217 | pressure_state = (exceeds_cpu_pressure, exceeds_io_pressure, exceeds_memory_pressure) |
| 218 | pressure_values = (round(cpu_pressure,1), self.rq.max_cpu_pressure, round(io_pressure,1), self.rq.max_io_pressure, round(memory_pressure,1), self.rq.max_memory_pressure) | ||
| 217 | if hasattr(self, "pressure_state") and pressure_state != self.pressure_state: | 219 | if hasattr(self, "pressure_state") and pressure_state != self.pressure_state: |
| 218 | bb.note("Pressure status changed to CPU: %s, IO: %s, Mem: %s" % pressure_state) | 220 | bb.note("Pressure status changed to CPU: %s, IO: %s, Mem: %s (CPU: %s/%s, IO: %s/%s, Mem: %s/%s)" % (pressure_state + pressure_values)) |
| 219 | self.pressure_state = pressure_state | 221 | self.pressure_state = pressure_state |
| 220 | return (exceeds_cpu_pressure or exceeds_io_pressure or exceeds_memory_pressure) | 222 | return (exceeds_cpu_pressure or exceeds_io_pressure or exceeds_memory_pressure) |
| 221 | return False | 223 | return False |
