[PATCH] drm/xe: Use fixed CCS mode when running in SR-IOV mode

Michal Wajdeczko michal.wajdeczko at intel.com
Fri Jun 14 10:01:23 UTC 2024



On 13.06.2024 22:51, Lucas De Marchi wrote:
> On Thu, Jun 13, 2024 at 03:54:45PM GMT, Michal Wajdeczko wrote:
>> We don't support changing CCS mode when running in SR-IOV mode yet.
>> When running as a PF driver just apply default ccs_mode=1 that VF
>> drivers will assume as already applied and fixed.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_gt_ccs_mode.c | 9 ++++++++-
>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_gt_ccs_mode.c
>> b/drivers/gpu/drm/xe/xe_gt_ccs_mode.c
>> index 5d4cdbd69bc3..aea49253d9c9 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_ccs_mode.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_ccs_mode.c
>> @@ -12,6 +12,7 @@
>> #include "xe_gt_printk.h"
>> #include "xe_gt_sysfs.h"
>> #include "xe_mmio.h"
>> +#include "xe_sriov.h"
>>
>> static void __xe_gt_apply_ccs_mode(struct xe_gt *gt, u32 num_engines)
>> {
>> @@ -75,7 +76,7 @@ static void __xe_gt_apply_ccs_mode(struct xe_gt *gt,
>> u32 num_engines)
>>
>> void xe_gt_apply_ccs_mode(struct xe_gt *gt)
>> {
>> -    if (!gt->ccs_mode)
>> +    if (!gt->ccs_mode || IS_SRIOV_VF(gt_to_xe(gt)))
>>         return;
>>
>>     __xe_gt_apply_ccs_mode(gt, gt->ccs_mode);
>> @@ -110,6 +111,12 @@ ccs_mode_store(struct device *kdev, struct
>> device_attribute *attr,
>>     u32 num_engines, num_slices;
>>     int ret;
>>
>> +    if (IS_SRIOV(xe)) {
>> +        xe_gt_dbg(gt, "Can't change compute mode when running as %s\n",
>> +              xe_sriov_mode_to_string(xe_device_sriov_mode(xe)));
>> +        return -EPERM;
> 
> EPERM? I'd expect ENOTSUPP

I will change to EOPNOTSUPP(95) as ENOTSUPP(524) is not correctly
recognized by the user space:

	$ echo 2 | sudo tee tile0/gt0/ccs_mode

	tee: 'tile0/gt0/ccs_mode': Unknown error 524
vs
	tee: 'tile0/gt0/ccs_mode': Operation not supported


> 
> Lucas De Marchi
> 
>> +    }
>> +
>>     ret = kstrtou32(buff, 0, &num_engines);
>>     if (ret)
>>         return ret;
>> -- 
>> 2.43.0
>>


More information about the Intel-xe mailing list