Skip to content

Hierarchical CBS design

Juri Lelli edited this page Feb 19, 2018 · 5 revisions

Development @https://github.com/jlelli/linux/issues/4

Comparison w.r.t. RT_GROUP_SCHED

FEATURE DEADLINE RT
affinity any, since RT entities can freely migrate/be pinned to any (v)CPU of the group any
RT_SHARE tasks migrate runtime migrates
hierarchy only leaf groups can contain tasks; are intermediate nodes RT or DL? no restriction (might cause starvation!)
scheduling EDF at root level/FP between tasks FP at root level/FP between tasks
throttling only with groups (need to see how to include root) at all levels (including root)
bandwidth reserved on each CPU (even if not used, might be reclaimed with GRUB) used only if tasks are running

Questions

  • What to do with RT_RUNTIME_SHARE?
    • make tasks migrate to CPUs (servers) with available bandwidth
    • what if however a task has restricted affinity and can't migrate?
  • Hierachy
    • EDF only at root level? Can't be useful to have EDF also between subgroups (e.g., a user that gets a fraction of bandwidth and wants to further divide it)
    • tasks only on leaf nodes?
    • how to enable throttling at root group level as well? maybe create default (e.g. 95%) servers?
  • Unused bandwidth
    • use GRUB to let tasks/groups reclaim leftover bandwidth?
Clone this wiki locally