Skip to content

Commit

Permalink
config-linux: Add Intel RDT CMT and MBM Linux support
Browse files Browse the repository at this point in the history
Add support for Intel Resource Director Technology (RDT) /
Cache Monitoring Technology (CMT) and Memory Bandwidth Monitoring (MBM).

Example:

"linux": {
    "intelRdt": {
        "monitoring": true
    }
}

This is the prerequisite of this runc proposal:
opencontainers/runc#2519

For more information about Intel RDT CMT and MBM, please refer to:
opencontainers/runc#2519

Signed-off-by: Paweł Szulik <pawel.szulik@intel.com>
  • Loading branch information
Paweł Szulik committed Nov 7, 2020
1 parent e6143ca commit b8343bc
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
1 change: 1 addition & 0 deletions config-linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,7 @@ The following parameters can be specified for the container:

* If `closID` is set, and neither of `l3CacheSchema` and `memBwSchema` are set, runtime MUST check if corresponding pre-configured directory `closID` is present in mounted `resctrl`. If such pre-configured directory `closID` exists, runtime MUST assign container to this `closID` and [generate an error](runtime.md#errors) if directory does not exist.

* **`monitoring`** *(boolean OPTIONAL)* - specifies if Intel RDT monitoring features (CMT and MBM) should be enabled

### Example

Expand Down
3 changes: 3 additions & 0 deletions schema/config-linux.json
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,9 @@
"memBwSchema": {
"type": "string",
"pattern": "^MB:[^\\n]*$"
},
"monitoring": {
"type": "boolean"
}
}
},
Expand Down
10 changes: 7 additions & 3 deletions specs-go/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ type Linux struct {
// MountLabel specifies the selinux context for the mounts in the container.
MountLabel string `json:"mountLabel,omitempty"`
// IntelRdt contains Intel Resource Director Technology (RDT) information for
// handling resource constraints (e.g., L3 cache, memory bandwidth) for the container
// handling resource constraints and monitoring metrics (e.g., L3 cache, memory bandwidth) for the container
IntelRdt *LinuxIntelRdt `json:"intelRdt,omitempty"`
// Personality contains configuration for the Linux personality syscall
Personality *LinuxPersonality `json:"personality,omitempty"`
Expand Down Expand Up @@ -678,8 +678,9 @@ type LinuxSyscall struct {
Args []LinuxSeccompArg `json:"args,omitempty"`
}

// LinuxIntelRdt has container runtime resource constraints for Intel RDT
// CAT and MBA features which introduced in Linux 4.10 and 4.12 kernel
// LinuxIntelRdt has container runtime resource constraints for Intel RDT CAT and MBA
// features and a flag of monitoring metric for Intel RDT CMT and MBM features.
// Intel RDT features are available in Linux 4.14 and newer kernel versions
type LinuxIntelRdt struct {
// The identity for RDT Class of Service
ClosID string `json:"closID,omitempty"`
Expand All @@ -692,4 +693,7 @@ type LinuxIntelRdt struct {
// The unit of memory bandwidth is specified in "percentages" by
// default, and in "MBps" if MBA Software Controller is enabled.
MemBwSchema string `json:"memBwSchema,omitempty"`

// The flag to indicate if Intel RDT monitoring features (CMT and MBM) are enabled.
Monitoring bool `json:"monitoring,omitempty"`
}

0 comments on commit b8343bc

Please sign in to comment.