[PATCH 0/5] xen/sched: rtds: add per-cpupool admission control

Furkan Caliskan posted 5 patches 1 week, 1 day ago
docs/man/xl.1.pod.in                 |  20 +++
tools/golang/xenlight/helpers.gen.go |  23 +++
tools/golang/xenlight/types.gen.go   |   4 +
tools/include/libxl.h                |   4 +
tools/include/xenctrl.h              |   6 +
tools/libs/ctrl/xc_rt.c              |  40 ++++++
tools/libs/light/libxl_sched.c       |  46 ++++++
tools/libs/light/libxl_types.idl     |   5 +
tools/xl/xl_cmdtable.c               |   8 +-
tools/xl/xl_sched.c                  | 103 +++++++++++++-
xen/common/sched/rt.c                | 205 ++++++++++++++++++++++++++-
xen/include/public/sysctl.h          |   5 +
12 files changed, 463 insertions(+), 6 deletions(-)
[PATCH 0/5] xen/sched: rtds: add per-cpupool admission control
Posted by Furkan Caliskan 1 week, 1 day ago
RTDS currently has no admission control: nothing stops the sum of
all admitted units' (budget/period) reservations in a cpupool from
exceeding what its pCPUs can actually provide. Once that happens,
the global-EDF deadline guarantees the scheduler is built around no
longer hold for any unit sharing that pool.

This series adds admission control to prevent that, tracks and
report utilization, and makes the check toggleable per cpupool so
an operator can disable it if they intentionally want to overcommit.

Patch 1 introduces the core mechanism: a running utilization total
per cpupool, a fixed-point representation of a unit's (budget/period),
and a capacity check enforced in rt_alloc_udata()/rt_free_udata() -
the lifecycle hooks that catch every new unit's default reservation.

Patch 2 extends the same check to domctl, so growing an existing
reservation via xl sched-rtds is checked too.

Patch 3 reports a cpupool's admitted utilization agains its capacity
via the 'r' debug key.

Patch 4 makes admission control itself toggleable per cpupool
(enabled by default) via sysctl.

Patch 5 wires that toggle through libxl and adds -s/-a to
xl sched-rtds, and documents it.

Furkan Caliskan (5):
  xen/sched: rtds: add global-EDF utilization admission control
  xen/sched: rtds: enforce admission control in xl sched-rtds
  xen/sched: rtds: report utilization and cap via debug key
  xen/sched: rtds: make admission control cpupool-wide toggleable
  tools: expose admission control toggle via xl sched-rtds

 docs/man/xl.1.pod.in                 |  20 +++
 tools/golang/xenlight/helpers.gen.go |  23 +++
 tools/golang/xenlight/types.gen.go   |   4 +
 tools/include/libxl.h                |   4 +
 tools/include/xenctrl.h              |   6 +
 tools/libs/ctrl/xc_rt.c              |  40 ++++++
 tools/libs/light/libxl_sched.c       |  46 ++++++
 tools/libs/light/libxl_types.idl     |   5 +
 tools/xl/xl_cmdtable.c               |   8 +-
 tools/xl/xl_sched.c                  | 103 +++++++++++++-
 xen/common/sched/rt.c                | 205 ++++++++++++++++++++++++++-
 xen/include/public/sysctl.h          |   5 +
 12 files changed, 463 insertions(+), 6 deletions(-)

-- 
2.34.1