|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 1/5] xen/sched: rtds: add global-EDF utilization admission control
On 9/18/26 12:40, Jan Beulich wrote: > On 18.09.2026 11:24, Furkan Caliskan wrote: >> RTDS 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, none of the >> EDF deadline guarantees this scheduler is built around still hold >> for the units sharing that pool. >> >> Introduce admission control to prevent this: reject a reservation >> whenever admitting it would push a cpupool's units over its capacity. >> Track a running utilization total per cpupool, and enforce it in >> rt_alloc_udata()/rt_free_udata(), the paired lifecycle hooks for a >> unit's creation and destruction. This catches the default >> period/budget every new unit gets. >> >> Utilization is represented as a fixed-point value: budget is >> left shifted by RTDS_UTIL_SHIFT (20 bits) and divided by period. >> A plain "(budget << RTDS_UTIL_SHIFT) / period" risks overflowing >> the multiply for large enough budgets. Rather than widen the >> arithmetic to tolerate any input, the input itself is bounded: >> rt_validate_params() rejects any budget above RTDS_MAX_BUDGET, >> chosen as the largest value that can be left-shifted by >> RTDS_UTIL_SHIFT without overflowing 64 bits, so the shift in >> rt_unit_utilization() can never overflow. >> >> A cpupool's capacity rt_utilization_cap() scales with the number of >> scheduling resources in it. It is calculated as: >> (number of sched_resources * RTDS_UTIL_SCALE * RTDS_UTIL_CAP_PCT / 100), >> where RTDS_UTIL_CAP_PCT controls how much of that capacity can >> actually be reserved; at 100% (its current value), all of it can be. >> >> Signed-off-by: Furkan Caliskan <frn1furkan10@xxxxxxxxx> >> Reviewed-by: Juergen Gross <jgross@xxxxxxxx> >> --- >> v3: >> - Fixed indentation. > > Looks like you re-sent only this one patch as v3. Such can be a little > confusing. We tend to call such version 2.1 or 2.5 (using this example), > to better identify that it is not a while new version of a series. Just > for possible future situations like this one. > > Jan Thanks, I'll keep it in mind for next time. Furkan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |