On Wed, 2024-02-07 at 10:19 -0700, Dave Jiang wrote: > The CFMWS provides a QTG ID. The kernel driver creates a root decoder that > represents the CFMWS. A qos_class attribute is exported via sysfs for the root > decoder. > > One or more QoS class tokens are retrieved via QTG ID _DSM from the ACPI0017 > device for a CXL memory device. The input for the _DSM is the read and write > latency and bandwidth for the path between the device and the CPU. The > numbers are constructed by the kernel driver for the _DSM input. When a > device is probed, QoS class tokens are retrieved. This is useful for a > hot-plugged CXL memory device that does not have regions created. > > Add a QoS check during region creation. Emit a warning if the qos_class > token from the root decoder is different than the mem device qos_class > token. User parameter options are provided to fail instead of just > warning. > > Reviewed-by: Alison Schofield <alison.schofi...@intel.com> > Signed-off-by: Dave Jiang <dave.ji...@intel.com> > --- > v6: > - Check return value of create_region_validate_qos_class() (Wonjae) > --- > Documentation/cxl/cxl-create-region.txt | 9 ++++ > cxl/region.c | 58 ++++++++++++++++++++++++- > 2 files changed, 66 insertions(+), 1 deletion(-) > > diff --git a/Documentation/cxl/cxl-create-region.txt > b/Documentation/cxl/cxl-create-region.txt > index f11a412bddfe..d5e34cf38236 100644 > --- a/Documentation/cxl/cxl-create-region.txt > +++ b/Documentation/cxl/cxl-create-region.txt > @@ -105,6 +105,15 @@ include::bus-option.txt[] > supplied, the first cross-host bridge (if available), decoder that > supports the largest interleave will be chosen. > > +-e:: > +--strict:: > + Enforce strict execution where any potential error will force failure. > + For example, if qos_class mismatches region creation will fail. > + > +-q:: > +--no-enforce-qos:: > + Parameter to bypass qos_class mismatch failure. Will only emit warning.
Hm, -q is usually synonymous with --quiet, it might be nice to reserve it for that in case we ever need to add a quiet mode. Maybe use -Q?