Balbir Singh wrote:On 5/26/06, Peter Williams <pwil3058@xxxxxxxxxxxxxx> wrote:
<snip>
Notes:
1. To minimize the overhead incurred when testing to skip caps processing for
uncapped tasks a new flag PF_HAS_CAP has been added to flags.
2. The implementation involves the addition of two priority slots to the
run queue priority arrays and this means that MAX_PRIO no longer
represents the scheduling priority of the idle process and can't be used to
test whether priority values are in the valid range. To alleviate this
problem a new function sched_idle_prio() has been provided.
I am a little confused by this. Why link the bandwidth expired tasks a
cpu (its caps) to a priority slot? Is this a hack to conitnue using
the prio_array? why not move such tasks to the expired array?
Because it won't work as after the array switch they may get to run before tasks who aren't exceeding their cap (or don't have a cap).