aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorJoshua Bakita <jbakita@cs.unc.edu>2020-05-14 23:27:57 -0400
committerJoshua Bakita <jbakita@cs.unc.edu>2020-05-14 23:27:57 -0400
commitaed8838b6d65f3ab614f2971347fd9ba2d302f15 (patch)
treea7a1da7d93fc86ce0ecd517b2b94782af3470ce4 /tools/perf/scripts/python
parent6d69592ca8e41e6be634d517939fd30027500fec (diff)
Optimize the process of setting `entry->linked` in edfsc_gschedule()
This optimization is based off two observed properties: 1. All of edfsc_gschedule() can handle `entry->linked` being NULL 2. All tasks removed from the ready queue must not be out of budget These invariants allow us to finish this scheduling cycle in one go, rather than restarting when we pull a task off the ready queue. This means that the `goto out` call is not strictly necessary, and can actually put the scheduler in an inconsistent state. This optimization exposed a buggy BUG_ON() call that checked if budget is exhausted without first checking that budget is enforced. That bug is fixed in this commit. This commit also makes the slight optimization that there's no need to call link_task_to_cpu() with NULL if `entry->linked` is already NULL. The removal of the `out:` label also allows for this commit to combine the checks for `is_container(next)`.
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions