diff mbox series

i915/perf: Disable OA sseu config param for non-gen11 platforms

Message ID 20220707182738.2845991-1-umesh.nerlige.ramappa@intel.com (mailing list archive)
State New, archived
Headers show
Series i915/perf: Disable OA sseu config param for non-gen11 platforms | expand

Commit Message

Umesh Nerlige Ramappa July 7, 2022, 6:27 p.m. UTC
The global sseu config is applicable only to gen11 platforms where
concurrent media, render and OA use cases may cause some subslices to be
turned off and hence lose NOA configuration. Return ENODEV for non-gen11
platforms.

v2: gfx12 is already shipped with this, disable for gfx12.5+ (Lionel)

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/i915/i915_perf.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Umesh Nerlige Ramappa July 7, 2022, 6:45 p.m. UTC | #1
On Thu, Jul 07, 2022 at 11:27:38AM -0700, Nerlige Ramappa, Umesh wrote:
>The global sseu config is applicable only to gen11 platforms where
>concurrent media, render and OA use cases may cause some subslices to be
>turned off and hence lose NOA configuration. Return ENODEV for non-gen11
>platforms.
>
>v2: gfx12 is already shipped with this, disable for gfx12.5+ (Lionel)

Pleas ignore, will post an update to this one with commit message 
changes.

Umesh
>
>Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>---
> drivers/gpu/drm/i915/i915_perf.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
>index 1577ab6754db..0ba98f73f217 100644
>--- a/drivers/gpu/drm/i915/i915_perf.c
>+++ b/drivers/gpu/drm/i915/i915_perf.c
>@@ -3706,6 +3706,12 @@ static int read_properties_unlocked(struct i915_perf *perf,
> 		case DRM_I915_PERF_PROP_GLOBAL_SSEU: {
> 			struct drm_i915_gem_context_param_sseu user_sseu;
>
>+			if (GRAPHICS_VER_FULL(perf->i915) >= IP_VER(12, 50)) {
>+				DRM_DEBUG("SSEU config not supported on gfx %x\n",
>+					  GRAPHICS_VER_FULL(perf->i915));
>+				return -ENODEV;
>+			}
>+
> 			if (copy_from_user(&user_sseu,
> 					   u64_to_user_ptr(value),
> 					   sizeof(user_sseu))) {
>-- 
>2.35.3
>
Matt Roper July 7, 2022, 6:49 p.m. UTC | #2
On Thu, Jul 07, 2022 at 11:27:38AM -0700, Nerlige Ramappa, Umesh wrote:
> The global sseu config is applicable only to gen11 platforms where
> concurrent media, render and OA use cases may cause some subslices to be
> turned off and hence lose NOA configuration. Return ENODEV for non-gen11
> platforms.
> 
> v2: gfx12 is already shipped with this, disable for gfx12.5+ (Lionel)

The commit message doesn't really match reality anymore with v2; you
might want to update the commit message a bit.

Also, minor nitpick:  although we write IP version numbers as
"arc.release" in shorthand, we shouldn't make the mistake of treating
those as fractional numbers since ".5" != ".50" the way they get handled
in the driver.  So this should say "12.50+" rather than "12.5+."

> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_perf.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 1577ab6754db..0ba98f73f217 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -3706,6 +3706,12 @@ static int read_properties_unlocked(struct i915_perf *perf,
>  		case DRM_I915_PERF_PROP_GLOBAL_SSEU: {
>  			struct drm_i915_gem_context_param_sseu user_sseu;
>  
> +			if (GRAPHICS_VER_FULL(perf->i915) >= IP_VER(12, 50)) {
> +				DRM_DEBUG("SSEU config not supported on gfx %x\n",
> +					  GRAPHICS_VER_FULL(perf->i915));

This should probably be using the device-specific drm_dbg() call.

Actually the perf code in general needs some updates to eliminate
DRM_DEBUG throughout...not only do we want to avoid using the old
non-device-aware interface in newer code, that's also the wrong old
interface to call (DRM_DEBUG categorizes messages as DRM_UT_CORE,
whereas DRM_DEBUG_DRIVER is the one that treats them as driver messages
with DRM_UT_DRIVER).


Matt

> +				return -ENODEV;
> +			}
> +
>  			if (copy_from_user(&user_sseu,
>  					   u64_to_user_ptr(value),
>  					   sizeof(user_sseu))) {
> -- 
> 2.35.3
>
Umesh Nerlige Ramappa July 7, 2022, 7:01 p.m. UTC | #3
On Thu, Jul 07, 2022 at 11:49:30AM -0700, Matt Roper wrote:
>On Thu, Jul 07, 2022 at 11:27:38AM -0700, Nerlige Ramappa, Umesh wrote:
>> The global sseu config is applicable only to gen11 platforms where
>> concurrent media, render and OA use cases may cause some subslices to be
>> turned off and hence lose NOA configuration. Return ENODEV for non-gen11
>> platforms.
>>
>> v2: gfx12 is already shipped with this, disable for gfx12.5+ (Lionel)
>
>The commit message doesn't really match reality anymore with v2; you
>might want to update the commit message a bit.
>
>Also, minor nitpick:  although we write IP version numbers as
>"arc.release" in shorthand, we shouldn't make the mistake of treating
>those as fractional numbers since ".5" != ".50" the way they get handled
>in the driver.  So this should say "12.50+" rather than "12.5+."

will do. I think I posted an updated patch before seeing your comments, 
so ignore that one.

>
>>
>> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_perf.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
>> index 1577ab6754db..0ba98f73f217 100644
>> --- a/drivers/gpu/drm/i915/i915_perf.c
>> +++ b/drivers/gpu/drm/i915/i915_perf.c
>> @@ -3706,6 +3706,12 @@ static int read_properties_unlocked(struct i915_perf *perf,
>>  		case DRM_I915_PERF_PROP_GLOBAL_SSEU: {
>>  			struct drm_i915_gem_context_param_sseu user_sseu;
>>
>> +			if (GRAPHICS_VER_FULL(perf->i915) >= IP_VER(12, 50)) {
>> +				DRM_DEBUG("SSEU config not supported on gfx %x\n",
>> +					  GRAPHICS_VER_FULL(perf->i915));
>
>This should probably be using the device-specific drm_dbg() call.
>
>Actually the perf code in general needs some updates to eliminate
>DRM_DEBUG throughout...not only do we want to avoid using the old
>non-device-aware interface in newer code, that's also the wrong old
>interface to call (DRM_DEBUG categorizes messages as DRM_UT_CORE,
>whereas DRM_DEBUG_DRIVER is the one that treats them as driver messages
>with DRM_UT_DRIVER).

will replace with drm_dbg()

Thanks,
Umesh


>
>
>Matt
>
>> +				return -ENODEV;
>> +			}
>> +
>>  			if (copy_from_user(&user_sseu,
>>  					   u64_to_user_ptr(value),
>>  					   sizeof(user_sseu))) {
>> --
>> 2.35.3
>>
>
>-- 
>Matt Roper
>Graphics Software Engineer
>VTT-OSGC Platform Enablement
>Intel Corporation
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 1577ab6754db..0ba98f73f217 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -3706,6 +3706,12 @@  static int read_properties_unlocked(struct i915_perf *perf,
 		case DRM_I915_PERF_PROP_GLOBAL_SSEU: {
 			struct drm_i915_gem_context_param_sseu user_sseu;
 
+			if (GRAPHICS_VER_FULL(perf->i915) >= IP_VER(12, 50)) {
+				DRM_DEBUG("SSEU config not supported on gfx %x\n",
+					  GRAPHICS_VER_FULL(perf->i915));
+				return -ENODEV;
+			}
+
 			if (copy_from_user(&user_sseu,
 					   u64_to_user_ptr(value),
 					   sizeof(user_sseu))) {