Skip to content
Commit 75a14031 authored by Pierre Gondois's avatar Pierre Gondois
Browse files

sched/pelt: Introduce util_burst

Util_burst allows to have an estimation of the size of a task
independently from co-scheduled tasks and their nice value. It
provides a utilization value as if a task had not been sharing the
rq with other tasks.

This means that util_burst:
-
is not be capped when a CPU is fully utilized. util_avg is capped
by the amount of time the task receives from the scheduler.
-
grows a bit faster than util_avg when there are co-scheduled tasks.
util_burst doesn't reflect the scheduler sharing time with other
tasks as if the task was idle. Meaning that if 2 tasks share a rq,
the scheduler will share time equally at the granularity of a
timeslice. When the second task is running, the util_avg signal of the
first task is decreased as this task as not running.
Util_burst discards doesn't account the time when a task is enqueued
but not running.

To achieve this:
- cache util_sum/period_contrib values when a task starts to run
- account the running time until the task is dequeued
- upon dequeue, update util_burst by accounting the running time all
at once, as if the task had been running uninterrupted.
parent 38fec10e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment