Skip to content

[KEP-5234] Clarify limits on ResourceSlice for mixins #5455

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 23 additions & 2 deletions keps/sig-scheduling/5234-dra-resourceslice-mixins/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,10 @@ type ResourceSliceMixins struct {
// shared attributes and capacities that an actual device can "include"
// to extend the set of attributes and capacities it already defines.
//
// The maximum number of device mixins in a ResourceSlice is 128
// and the total number of attributes and capacities across device
// mixins and devices in a single ResourceSlice must not exceed 4096.
//
// +optional
// +listType=atomic
Device []DeviceMixin
Expand All @@ -333,6 +337,11 @@ type ResourceSliceMixins struct {
// consumption mixins, each of which contains a set of counters
// that a device will consume from a counter set.
//
// The maximum number of device counter consumption mixins in a
// ResourceSlice is 128 the total number of consumed counters across device
// counter consumption mixins and devices in a single
// ResourceSlice must not exceed 2048.
//
// +optional
// +listType=atomic
DeviceCounterConsumption []DeviceCounterConsumptionMixin
Expand All @@ -341,6 +350,10 @@ type ResourceSliceMixins struct {
// a collection of counters that a CounterSet can "include"
// to extend the set of counters it already defines.
//
// The maximum number of counter set mixins in a ResourceSlice is
// 32 and the total number of counters across counter set mixins and
// counter sets in a single ResourceSlice must not exceed 256.
//
// +optional
// +listType=atomic
CounterSet []CounterSetMixin
Expand Down Expand Up @@ -460,7 +473,7 @@ type DeviceCounterConsumption struct {
// The mixins referenced here must be defined in the same
// ResourceSlice.
//
// The maximum number of includes is 8.
// The maximum number of includes is 4.
//
// +featureGate=DRAResourceSliceMixins
// +optional
Expand Down Expand Up @@ -501,10 +514,18 @@ The ResourceSlice-wide limits will be:
* Total combined number of attributes and capacity in a ResourceSlice is 4096 (so with the maximum number of devices, there can be 32 per device).
* Total number of counters is 256.
* Total number of consumed counters is 2048 (so with the maximum number of devices, there can be 16 per device).
* Total number of counter sets is 32.
* Total number of device mixins is 128 (same as max number of devices).
* Total number of counter set mixins is 32 (same as max number of counter sets).
* Total number of device counter consumption mixins is 128.


We will still enforce some per-field limits:
* The number of mixins that can be referenced from each device, counter set or device counter consumption is 8.
* The number of mixins that can be referenced from each device or counter set is 8.
* The number of mixins that can be referenced from each device counter consumption is 4.
* The number of taints per device is 4.
* The number of device counter consumptions per device is 4. This means that each device can only consume counters from a maximum of 4 different counter sets.


We will also enforce one limit on the flattened device:
* The combined number of attributes and capacities for a single device can not exceed 32. We do this
Expand Down