dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm/i915/guc/slpc: Use i915_probe_error instead of drm_err
@ 2022-04-12 22:48 Vinay Belgaumkar
  2022-04-14  6:41 ` [Intel-gfx] " Anshuman Gupta
  0 siblings, 1 reply; 5+ messages in thread
From: Vinay Belgaumkar @ 2022-04-12 22:48 UTC (permalink / raw)
  To: intel-gfx, dri-devel; +Cc: Vinay Belgaumkar

This will ensure we don't have false positives when we run
error injection tests.

Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
---
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 42 ++++++++++-----------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
index b170238aa15c..639de3c10545 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
@@ -152,8 +152,8 @@ static int slpc_query_task_state(struct intel_guc_slpc *slpc)
 
 	ret = guc_action_slpc_query(guc, offset);
 	if (unlikely(ret))
-		drm_err(&i915->drm, "Failed to query task state (%pe)\n",
-			ERR_PTR(ret));
+		i915_probe_error(i915, "Failed to query task state (%pe)\n",
+				 ERR_PTR(ret));
 
 	drm_clflush_virt_range(slpc->vaddr, SLPC_PAGE_SIZE_BYTES);
 
@@ -170,8 +170,8 @@ static int slpc_set_param(struct intel_guc_slpc *slpc, u8 id, u32 value)
 
 	ret = guc_action_slpc_set_param(guc, id, value);
 	if (ret)
-		drm_err(&i915->drm, "Failed to set param %d to %u (%pe)\n",
-			id, value, ERR_PTR(ret));
+		i915_probe_error(i915, "Failed to set param %d to %u (%pe)\n",
+				 id, value, ERR_PTR(ret));
 
 	return ret;
 }
@@ -211,8 +211,8 @@ static int slpc_force_min_freq(struct intel_guc_slpc *slpc, u32 freq)
 				     SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ,
 				     freq);
 		if (ret)
-			drm_err(&i915->drm, "Unable to force min freq to %u: %d",
-				freq, ret);
+			i915_probe_error(i915, "Unable to force min freq to %u: %d",
+					 freq, ret);
 	}
 
 	return ret;
@@ -247,9 +247,9 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
 
 	err = intel_guc_allocate_and_map_vma(guc, size, &slpc->vma, (void **)&slpc->vaddr);
 	if (unlikely(err)) {
-		drm_err(&i915->drm,
-			"Failed to allocate SLPC struct (err=%pe)\n",
-			ERR_PTR(err));
+		i915_probe_error(i915,
+				 "Failed to allocate SLPC struct (err=%pe)\n",
+				 ERR_PTR(err));
 		return err;
 	}
 
@@ -316,15 +316,15 @@ static int slpc_reset(struct intel_guc_slpc *slpc)
 	ret = guc_action_slpc_reset(guc, offset);
 
 	if (unlikely(ret < 0)) {
-		drm_err(&i915->drm, "SLPC reset action failed (%pe)\n",
-			ERR_PTR(ret));
+		i915_probe_error(i915, "SLPC reset action failed (%pe)\n",
+				 ERR_PTR(ret));
 		return ret;
 	}
 
 	if (!ret) {
 		if (wait_for(slpc_is_running(slpc), SLPC_RESET_TIMEOUT_MS)) {
-			drm_err(&i915->drm, "SLPC not enabled! State = %s\n",
-				slpc_get_state_string(slpc));
+			i915_probe_error(i915, "SLPC not enabled! State = %s\n",
+					 slpc_get_state_string(slpc));
 			return -EIO;
 		}
 	}
@@ -616,8 +616,8 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
 
 	ret = slpc_reset(slpc);
 	if (unlikely(ret < 0)) {
-		drm_err(&i915->drm, "SLPC Reset event returned (%pe)\n",
-			ERR_PTR(ret));
+		i915_probe_error(i915, "SLPC Reset event returned (%pe)\n",
+				 ERR_PTR(ret));
 		return ret;
 	}
 
@@ -632,24 +632,24 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
 	/* Ignore efficient freq and set min to platform min */
 	ret = slpc_ignore_eff_freq(slpc, true);
 	if (unlikely(ret)) {
-		drm_err(&i915->drm, "Failed to set SLPC min to RPn (%pe)\n",
-			ERR_PTR(ret));
+		i915_probe_error(i915, "Failed to set SLPC min to RPn (%pe)\n",
+				 ERR_PTR(ret));
 		return ret;
 	}
 
 	/* Set SLPC max limit to RP0 */
 	ret = slpc_use_fused_rp0(slpc);
 	if (unlikely(ret)) {
-		drm_err(&i915->drm, "Failed to set SLPC max to RP0 (%pe)\n",
-			ERR_PTR(ret));
+		i915_probe_error(i915, "Failed to set SLPC max to RP0 (%pe)\n",
+				 ERR_PTR(ret));
 		return ret;
 	}
 
 	/* Revert SLPC min/max to softlimits if necessary */
 	ret = slpc_set_softlimits(slpc);
 	if (unlikely(ret)) {
-		drm_err(&i915->drm, "Failed to set SLPC softlimits (%pe)\n",
-			ERR_PTR(ret));
+		i915_probe_error(i915, "Failed to set SLPC softlimits (%pe)\n",
+				 ERR_PTR(ret));
 		return ret;
 	}
 
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/guc/slpc: Use i915_probe_error instead of drm_err
  2022-04-12 22:48 [PATCH] drm/i915/guc/slpc: Use i915_probe_error instead of drm_err Vinay Belgaumkar
@ 2022-04-14  6:41 ` Anshuman Gupta
  2022-04-14 15:08   ` Belgaumkar, Vinay
  0 siblings, 1 reply; 5+ messages in thread
From: Anshuman Gupta @ 2022-04-14  6:41 UTC (permalink / raw)
  To: Vinay Belgaumkar; +Cc: intel-gfx, dri-devel

On 2022-04-13 at 04:18:52 +0530, Vinay Belgaumkar wrote:
> This will ensure we don't have false positives when we run
> error injection tests.
> 
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> ---
>  drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 42 ++++++++++-----------
>  1 file changed, 21 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> index b170238aa15c..639de3c10545 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> @@ -152,8 +152,8 @@ static int slpc_query_task_state(struct intel_guc_slpc *slpc)
>  
>  	ret = guc_action_slpc_query(guc, offset);
>  	if (unlikely(ret))
As commit logs describe, this code patch can hit, when we run error injection test.
Do we need unlikely() here?
Br,
Anshuman Gupta.
> -		drm_err(&i915->drm, "Failed to query task state (%pe)\n",
> -			ERR_PTR(ret));
> +		i915_probe_error(i915, "Failed to query task state (%pe)\n",
> +				 ERR_PTR(ret));
>  
>  	drm_clflush_virt_range(slpc->vaddr, SLPC_PAGE_SIZE_BYTES);
>  
> @@ -170,8 +170,8 @@ static int slpc_set_param(struct intel_guc_slpc *slpc, u8 id, u32 value)
>  
>  	ret = guc_action_slpc_set_param(guc, id, value);
>  	if (ret)
> -		drm_err(&i915->drm, "Failed to set param %d to %u (%pe)\n",
> -			id, value, ERR_PTR(ret));
> +		i915_probe_error(i915, "Failed to set param %d to %u (%pe)\n",
> +				 id, value, ERR_PTR(ret));
>  
>  	return ret;
>  }
> @@ -211,8 +211,8 @@ static int slpc_force_min_freq(struct intel_guc_slpc *slpc, u32 freq)
>  				     SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ,
>  				     freq);
>  		if (ret)
> -			drm_err(&i915->drm, "Unable to force min freq to %u: %d",
> -				freq, ret);
> +			i915_probe_error(i915, "Unable to force min freq to %u: %d",
> +					 freq, ret);
>  	}
>  
>  	return ret;
> @@ -247,9 +247,9 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>  
>  	err = intel_guc_allocate_and_map_vma(guc, size, &slpc->vma, (void **)&slpc->vaddr);
>  	if (unlikely(err)) {
> -		drm_err(&i915->drm,
> -			"Failed to allocate SLPC struct (err=%pe)\n",
> -			ERR_PTR(err));
> +		i915_probe_error(i915,
> +				 "Failed to allocate SLPC struct (err=%pe)\n",
> +				 ERR_PTR(err));
>  		return err;
>  	}
>  
> @@ -316,15 +316,15 @@ static int slpc_reset(struct intel_guc_slpc *slpc)
>  	ret = guc_action_slpc_reset(guc, offset);
>  
>  	if (unlikely(ret < 0)) {
> -		drm_err(&i915->drm, "SLPC reset action failed (%pe)\n",
> -			ERR_PTR(ret));
> +		i915_probe_error(i915, "SLPC reset action failed (%pe)\n",
> +				 ERR_PTR(ret));
>  		return ret;
>  	}
>  
>  	if (!ret) {
>  		if (wait_for(slpc_is_running(slpc), SLPC_RESET_TIMEOUT_MS)) {
> -			drm_err(&i915->drm, "SLPC not enabled! State = %s\n",
> -				slpc_get_state_string(slpc));
> +			i915_probe_error(i915, "SLPC not enabled! State = %s\n",
> +					 slpc_get_state_string(slpc));
>  			return -EIO;
>  		}
>  	}
> @@ -616,8 +616,8 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>  
>  	ret = slpc_reset(slpc);
>  	if (unlikely(ret < 0)) {
> -		drm_err(&i915->drm, "SLPC Reset event returned (%pe)\n",
> -			ERR_PTR(ret));
> +		i915_probe_error(i915, "SLPC Reset event returned (%pe)\n",
> +				 ERR_PTR(ret));
>  		return ret;
>  	}
>  
> @@ -632,24 +632,24 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>  	/* Ignore efficient freq and set min to platform min */
>  	ret = slpc_ignore_eff_freq(slpc, true);
>  	if (unlikely(ret)) {
> -		drm_err(&i915->drm, "Failed to set SLPC min to RPn (%pe)\n",
> -			ERR_PTR(ret));
> +		i915_probe_error(i915, "Failed to set SLPC min to RPn (%pe)\n",
> +				 ERR_PTR(ret));
>  		return ret;
>  	}
>  
>  	/* Set SLPC max limit to RP0 */
>  	ret = slpc_use_fused_rp0(slpc);
>  	if (unlikely(ret)) {
> -		drm_err(&i915->drm, "Failed to set SLPC max to RP0 (%pe)\n",
> -			ERR_PTR(ret));
> +		i915_probe_error(i915, "Failed to set SLPC max to RP0 (%pe)\n",
> +				 ERR_PTR(ret));
>  		return ret;
>  	}
>  
>  	/* Revert SLPC min/max to softlimits if necessary */
>  	ret = slpc_set_softlimits(slpc);
>  	if (unlikely(ret)) {
> -		drm_err(&i915->drm, "Failed to set SLPC softlimits (%pe)\n",
> -			ERR_PTR(ret));
> +		i915_probe_error(i915, "Failed to set SLPC softlimits (%pe)\n",
> +				 ERR_PTR(ret));
>  		return ret;
>  	}
>  
> -- 
> 2.35.1
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/guc/slpc: Use i915_probe_error instead of drm_err
  2022-04-14  6:41 ` [Intel-gfx] " Anshuman Gupta
@ 2022-04-14 15:08   ` Belgaumkar, Vinay
  2022-04-14 16:13     ` Jani Nikula
  2022-04-14 16:17     ` Gupta, Anshuman
  0 siblings, 2 replies; 5+ messages in thread
From: Belgaumkar, Vinay @ 2022-04-14 15:08 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: intel-gfx, dri-devel


On 4/13/2022 11:41 PM, Anshuman Gupta wrote:
> On 2022-04-13 at 04:18:52 +0530, Vinay Belgaumkar wrote:
>> This will ensure we don't have false positives when we run
>> error injection tests.
>>
>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>> ---
>>   drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 42 ++++++++++-----------
>>   1 file changed, 21 insertions(+), 21 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> index b170238aa15c..639de3c10545 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> @@ -152,8 +152,8 @@ static int slpc_query_task_state(struct intel_guc_slpc *slpc)
>>   
>>   	ret = guc_action_slpc_query(guc, offset);
>>   	if (unlikely(ret))
> As commit logs describe, this code patch can hit, when we run error injection test.
> Do we need unlikely() here?
> Br,
> Anshuman Gupta.

I think we still need the unlikely(). Majority of the time, we still 
need the compiler optimization.

Only in the rare case of running the error injection test will it not be 
needed.

Thanks,

Vinay.

>> -		drm_err(&i915->drm, "Failed to query task state (%pe)\n",
>> -			ERR_PTR(ret));
>> +		i915_probe_error(i915, "Failed to query task state (%pe)\n",
>> +				 ERR_PTR(ret));
>>   
>>   	drm_clflush_virt_range(slpc->vaddr, SLPC_PAGE_SIZE_BYTES);
>>   
>> @@ -170,8 +170,8 @@ static int slpc_set_param(struct intel_guc_slpc *slpc, u8 id, u32 value)
>>   
>>   	ret = guc_action_slpc_set_param(guc, id, value);
>>   	if (ret)
>> -		drm_err(&i915->drm, "Failed to set param %d to %u (%pe)\n",
>> -			id, value, ERR_PTR(ret));
>> +		i915_probe_error(i915, "Failed to set param %d to %u (%pe)\n",
>> +				 id, value, ERR_PTR(ret));
>>   
>>   	return ret;
>>   }
>> @@ -211,8 +211,8 @@ static int slpc_force_min_freq(struct intel_guc_slpc *slpc, u32 freq)
>>   				     SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ,
>>   				     freq);
>>   		if (ret)
>> -			drm_err(&i915->drm, "Unable to force min freq to %u: %d",
>> -				freq, ret);
>> +			i915_probe_error(i915, "Unable to force min freq to %u: %d",
>> +					 freq, ret);
>>   	}
>>   
>>   	return ret;
>> @@ -247,9 +247,9 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>>   
>>   	err = intel_guc_allocate_and_map_vma(guc, size, &slpc->vma, (void **)&slpc->vaddr);
>>   	if (unlikely(err)) {
>> -		drm_err(&i915->drm,
>> -			"Failed to allocate SLPC struct (err=%pe)\n",
>> -			ERR_PTR(err));
>> +		i915_probe_error(i915,
>> +				 "Failed to allocate SLPC struct (err=%pe)\n",
>> +				 ERR_PTR(err));
>>   		return err;
>>   	}
>>   
>> @@ -316,15 +316,15 @@ static int slpc_reset(struct intel_guc_slpc *slpc)
>>   	ret = guc_action_slpc_reset(guc, offset);
>>   
>>   	if (unlikely(ret < 0)) {
>> -		drm_err(&i915->drm, "SLPC reset action failed (%pe)\n",
>> -			ERR_PTR(ret));
>> +		i915_probe_error(i915, "SLPC reset action failed (%pe)\n",
>> +				 ERR_PTR(ret));
>>   		return ret;
>>   	}
>>   
>>   	if (!ret) {
>>   		if (wait_for(slpc_is_running(slpc), SLPC_RESET_TIMEOUT_MS)) {
>> -			drm_err(&i915->drm, "SLPC not enabled! State = %s\n",
>> -				slpc_get_state_string(slpc));
>> +			i915_probe_error(i915, "SLPC not enabled! State = %s\n",
>> +					 slpc_get_state_string(slpc));
>>   			return -EIO;
>>   		}
>>   	}
>> @@ -616,8 +616,8 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>>   
>>   	ret = slpc_reset(slpc);
>>   	if (unlikely(ret < 0)) {
>> -		drm_err(&i915->drm, "SLPC Reset event returned (%pe)\n",
>> -			ERR_PTR(ret));
>> +		i915_probe_error(i915, "SLPC Reset event returned (%pe)\n",
>> +				 ERR_PTR(ret));
>>   		return ret;
>>   	}
>>   
>> @@ -632,24 +632,24 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>>   	/* Ignore efficient freq and set min to platform min */
>>   	ret = slpc_ignore_eff_freq(slpc, true);
>>   	if (unlikely(ret)) {
>> -		drm_err(&i915->drm, "Failed to set SLPC min to RPn (%pe)\n",
>> -			ERR_PTR(ret));
>> +		i915_probe_error(i915, "Failed to set SLPC min to RPn (%pe)\n",
>> +				 ERR_PTR(ret));
>>   		return ret;
>>   	}
>>   
>>   	/* Set SLPC max limit to RP0 */
>>   	ret = slpc_use_fused_rp0(slpc);
>>   	if (unlikely(ret)) {
>> -		drm_err(&i915->drm, "Failed to set SLPC max to RP0 (%pe)\n",
>> -			ERR_PTR(ret));
>> +		i915_probe_error(i915, "Failed to set SLPC max to RP0 (%pe)\n",
>> +				 ERR_PTR(ret));
>>   		return ret;
>>   	}
>>   
>>   	/* Revert SLPC min/max to softlimits if necessary */
>>   	ret = slpc_set_softlimits(slpc);
>>   	if (unlikely(ret)) {
>> -		drm_err(&i915->drm, "Failed to set SLPC softlimits (%pe)\n",
>> -			ERR_PTR(ret));
>> +		i915_probe_error(i915, "Failed to set SLPC softlimits (%pe)\n",
>> +				 ERR_PTR(ret));
>>   		return ret;
>>   	}
>>   
>> -- 
>> 2.35.1
>>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/guc/slpc: Use i915_probe_error instead of drm_err
  2022-04-14 15:08   ` Belgaumkar, Vinay
@ 2022-04-14 16:13     ` Jani Nikula
  2022-04-14 16:17     ` Gupta, Anshuman
  1 sibling, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2022-04-14 16:13 UTC (permalink / raw)
  To: Belgaumkar, Vinay, Anshuman Gupta; +Cc: intel-gfx, dri-devel

On Thu, 14 Apr 2022, "Belgaumkar, Vinay" <vinay.belgaumkar@intel.com> wrote:
> On 4/13/2022 11:41 PM, Anshuman Gupta wrote:
>> On 2022-04-13 at 04:18:52 +0530, Vinay Belgaumkar wrote:
>>> This will ensure we don't have false positives when we run
>>> error injection tests.
>>>
>>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 42 ++++++++++-----------
>>>   1 file changed, 21 insertions(+), 21 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>>> index b170238aa15c..639de3c10545 100644
>>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>>> @@ -152,8 +152,8 @@ static int slpc_query_task_state(struct intel_guc_slpc *slpc)
>>>   
>>>   	ret = guc_action_slpc_query(guc, offset);
>>>   	if (unlikely(ret))
>> As commit logs describe, this code patch can hit, when we run error injection test.
>> Do we need unlikely() here?
>> Br,
>> Anshuman Gupta.
>
> I think we still need the unlikely(). Majority of the time, we still 
> need the compiler optimization.
>
> Only in the rare case of running the error injection test will it not be 
> needed.

IMO most uses of likely/unlikely (and inline for that matter) are
premature optimization that just shouldn't be there. They're a
distraction to human readers, and a style that all too easily gets cargo
culted all over the place. In most cases, please just let the compiler
do what it does best.

And *then* if you still need to squeeze extra cycles out of the code,
and can quantify it, by all means optimize. But in that case, maybe the
root cause is somewhere other than a missing likely/unlikely/inline?


BR,
Jani.


>
> Thanks,
>
> Vinay.
>
>>> -		drm_err(&i915->drm, "Failed to query task state (%pe)\n",
>>> -			ERR_PTR(ret));
>>> +		i915_probe_error(i915, "Failed to query task state (%pe)\n",
>>> +				 ERR_PTR(ret));
>>>   
>>>   	drm_clflush_virt_range(slpc->vaddr, SLPC_PAGE_SIZE_BYTES);
>>>   
>>> @@ -170,8 +170,8 @@ static int slpc_set_param(struct intel_guc_slpc *slpc, u8 id, u32 value)
>>>   
>>>   	ret = guc_action_slpc_set_param(guc, id, value);
>>>   	if (ret)
>>> -		drm_err(&i915->drm, "Failed to set param %d to %u (%pe)\n",
>>> -			id, value, ERR_PTR(ret));
>>> +		i915_probe_error(i915, "Failed to set param %d to %u (%pe)\n",
>>> +				 id, value, ERR_PTR(ret));
>>>   
>>>   	return ret;
>>>   }
>>> @@ -211,8 +211,8 @@ static int slpc_force_min_freq(struct intel_guc_slpc *slpc, u32 freq)
>>>   				     SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ,
>>>   				     freq);
>>>   		if (ret)
>>> -			drm_err(&i915->drm, "Unable to force min freq to %u: %d",
>>> -				freq, ret);
>>> +			i915_probe_error(i915, "Unable to force min freq to %u: %d",
>>> +					 freq, ret);
>>>   	}
>>>   
>>>   	return ret;
>>> @@ -247,9 +247,9 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>>>   
>>>   	err = intel_guc_allocate_and_map_vma(guc, size, &slpc->vma, (void **)&slpc->vaddr);
>>>   	if (unlikely(err)) {
>>> -		drm_err(&i915->drm,
>>> -			"Failed to allocate SLPC struct (err=%pe)\n",
>>> -			ERR_PTR(err));
>>> +		i915_probe_error(i915,
>>> +				 "Failed to allocate SLPC struct (err=%pe)\n",
>>> +				 ERR_PTR(err));
>>>   		return err;
>>>   	}
>>>   
>>> @@ -316,15 +316,15 @@ static int slpc_reset(struct intel_guc_slpc *slpc)
>>>   	ret = guc_action_slpc_reset(guc, offset);
>>>   
>>>   	if (unlikely(ret < 0)) {
>>> -		drm_err(&i915->drm, "SLPC reset action failed (%pe)\n",
>>> -			ERR_PTR(ret));
>>> +		i915_probe_error(i915, "SLPC reset action failed (%pe)\n",
>>> +				 ERR_PTR(ret));
>>>   		return ret;
>>>   	}
>>>   
>>>   	if (!ret) {
>>>   		if (wait_for(slpc_is_running(slpc), SLPC_RESET_TIMEOUT_MS)) {
>>> -			drm_err(&i915->drm, "SLPC not enabled! State = %s\n",
>>> -				slpc_get_state_string(slpc));
>>> +			i915_probe_error(i915, "SLPC not enabled! State = %s\n",
>>> +					 slpc_get_state_string(slpc));
>>>   			return -EIO;
>>>   		}
>>>   	}
>>> @@ -616,8 +616,8 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>>>   
>>>   	ret = slpc_reset(slpc);
>>>   	if (unlikely(ret < 0)) {
>>> -		drm_err(&i915->drm, "SLPC Reset event returned (%pe)\n",
>>> -			ERR_PTR(ret));
>>> +		i915_probe_error(i915, "SLPC Reset event returned (%pe)\n",
>>> +				 ERR_PTR(ret));
>>>   		return ret;
>>>   	}
>>>   
>>> @@ -632,24 +632,24 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>>>   	/* Ignore efficient freq and set min to platform min */
>>>   	ret = slpc_ignore_eff_freq(slpc, true);
>>>   	if (unlikely(ret)) {
>>> -		drm_err(&i915->drm, "Failed to set SLPC min to RPn (%pe)\n",
>>> -			ERR_PTR(ret));
>>> +		i915_probe_error(i915, "Failed to set SLPC min to RPn (%pe)\n",
>>> +				 ERR_PTR(ret));
>>>   		return ret;
>>>   	}
>>>   
>>>   	/* Set SLPC max limit to RP0 */
>>>   	ret = slpc_use_fused_rp0(slpc);
>>>   	if (unlikely(ret)) {
>>> -		drm_err(&i915->drm, "Failed to set SLPC max to RP0 (%pe)\n",
>>> -			ERR_PTR(ret));
>>> +		i915_probe_error(i915, "Failed to set SLPC max to RP0 (%pe)\n",
>>> +				 ERR_PTR(ret));
>>>   		return ret;
>>>   	}
>>>   
>>>   	/* Revert SLPC min/max to softlimits if necessary */
>>>   	ret = slpc_set_softlimits(slpc);
>>>   	if (unlikely(ret)) {
>>> -		drm_err(&i915->drm, "Failed to set SLPC softlimits (%pe)\n",
>>> -			ERR_PTR(ret));
>>> +		i915_probe_error(i915, "Failed to set SLPC softlimits (%pe)\n",
>>> +				 ERR_PTR(ret));
>>>   		return ret;
>>>   	}
>>>   
>>> -- 
>>> 2.35.1
>>>

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [Intel-gfx] [PATCH] drm/i915/guc/slpc: Use i915_probe_error instead of drm_err
  2022-04-14 15:08   ` Belgaumkar, Vinay
  2022-04-14 16:13     ` Jani Nikula
@ 2022-04-14 16:17     ` Gupta, Anshuman
  1 sibling, 0 replies; 5+ messages in thread
From: Gupta, Anshuman @ 2022-04-14 16:17 UTC (permalink / raw)
  To: Belgaumkar, Vinay; +Cc: intel-gfx, dri-devel



> -----Original Message-----
> From: Belgaumkar, Vinay <vinay.belgaumkar@intel.com>
> Sent: Thursday, April 14, 2022 8:38 PM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>
> Cc: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH] drm/i915/guc/slpc: Use i915_probe_error
> instead of drm_err
> 
> 
> On 4/13/2022 11:41 PM, Anshuman Gupta wrote:
> > On 2022-04-13 at 04:18:52 +0530, Vinay Belgaumkar wrote:
> >> This will ensure we don't have false positives when we run error
> >> injection tests.
> >>
> >> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> >> ---
> >>   drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 42 ++++++++++-----------
> >>   1 file changed, 21 insertions(+), 21 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> >> b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> >> index b170238aa15c..639de3c10545 100644
> >> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> >> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> >> @@ -152,8 +152,8 @@ static int slpc_query_task_state(struct
> >> intel_guc_slpc *slpc)
> >>
> >>   	ret = guc_action_slpc_query(guc, offset);
> >>   	if (unlikely(ret))
> > As commit logs describe, this code patch can hit, when we run error injection
> test.
> > Do we need unlikely() here?
> > Br,
> > Anshuman Gupta.
> 
> I think we still need the unlikely(). Majority of the time, we still need the
> compiler optimization.
> 
> Only in the rare case of running the error injection test will it not be needed.
Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
> 
> Thanks,
> 
> Vinay.
> 
> >> -		drm_err(&i915->drm, "Failed to query task state (%pe)\n",
> >> -			ERR_PTR(ret));
> >> +		i915_probe_error(i915, "Failed to query task state (%pe)\n",
> >> +				 ERR_PTR(ret));
> >>
> >>   	drm_clflush_virt_range(slpc->vaddr, SLPC_PAGE_SIZE_BYTES);
> >>
> >> @@ -170,8 +170,8 @@ static int slpc_set_param(struct intel_guc_slpc
> >> *slpc, u8 id, u32 value)
> >>
> >>   	ret = guc_action_slpc_set_param(guc, id, value);
> >>   	if (ret)
> >> -		drm_err(&i915->drm, "Failed to set param %d to %u (%pe)\n",
> >> -			id, value, ERR_PTR(ret));
> >> +		i915_probe_error(i915, "Failed to set param %d to %u (%pe)\n",
> >> +				 id, value, ERR_PTR(ret));
> >>
> >>   	return ret;
> >>   }
> >> @@ -211,8 +211,8 @@ static int slpc_force_min_freq(struct intel_guc_slpc
> *slpc, u32 freq)
> >>
> SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ,
> >>   				     freq);
> >>   		if (ret)
> >> -			drm_err(&i915->drm, "Unable to force min freq to %u:
> %d",
> >> -				freq, ret);
> >> +			i915_probe_error(i915, "Unable to force min freq to
> %u: %d",
> >> +					 freq, ret);
> >>   	}
> >>
> >>   	return ret;
> >> @@ -247,9 +247,9 @@ int intel_guc_slpc_init(struct intel_guc_slpc
> >> *slpc)
> >>
> >>   	err = intel_guc_allocate_and_map_vma(guc, size, &slpc->vma, (void
> **)&slpc->vaddr);
> >>   	if (unlikely(err)) {
> >> -		drm_err(&i915->drm,
> >> -			"Failed to allocate SLPC struct (err=%pe)\n",
> >> -			ERR_PTR(err));
> >> +		i915_probe_error(i915,
> >> +				 "Failed to allocate SLPC struct (err=%pe)\n",
> >> +				 ERR_PTR(err));
> >>   		return err;
> >>   	}
> >>
> >> @@ -316,15 +316,15 @@ static int slpc_reset(struct intel_guc_slpc *slpc)
> >>   	ret = guc_action_slpc_reset(guc, offset);
> >>
> >>   	if (unlikely(ret < 0)) {
> >> -		drm_err(&i915->drm, "SLPC reset action failed (%pe)\n",
> >> -			ERR_PTR(ret));
> >> +		i915_probe_error(i915, "SLPC reset action failed (%pe)\n",
> >> +				 ERR_PTR(ret));
> >>   		return ret;
> >>   	}
> >>
> >>   	if (!ret) {
> >>   		if (wait_for(slpc_is_running(slpc), SLPC_RESET_TIMEOUT_MS)) {
> >> -			drm_err(&i915->drm, "SLPC not enabled! State = %s\n",
> >> -				slpc_get_state_string(slpc));
> >> +			i915_probe_error(i915, "SLPC not enabled! State =
> %s\n",
> >> +					 slpc_get_state_string(slpc));
> >>   			return -EIO;
> >>   		}
> >>   	}
> >> @@ -616,8 +616,8 @@ int intel_guc_slpc_enable(struct intel_guc_slpc
> >> *slpc)
> >>
> >>   	ret = slpc_reset(slpc);
> >>   	if (unlikely(ret < 0)) {
> >> -		drm_err(&i915->drm, "SLPC Reset event returned (%pe)\n",
> >> -			ERR_PTR(ret));
> >> +		i915_probe_error(i915, "SLPC Reset event returned (%pe)\n",
> >> +				 ERR_PTR(ret));
> >>   		return ret;
> >>   	}
> >>
> >> @@ -632,24 +632,24 @@ int intel_guc_slpc_enable(struct intel_guc_slpc
> *slpc)
> >>   	/* Ignore efficient freq and set min to platform min */
> >>   	ret = slpc_ignore_eff_freq(slpc, true);
> >>   	if (unlikely(ret)) {
> >> -		drm_err(&i915->drm, "Failed to set SLPC min to RPn (%pe)\n",
> >> -			ERR_PTR(ret));
> >> +		i915_probe_error(i915, "Failed to set SLPC min to RPn (%pe)\n",
> >> +				 ERR_PTR(ret));
> >>   		return ret;
> >>   	}
> >>
> >>   	/* Set SLPC max limit to RP0 */
> >>   	ret = slpc_use_fused_rp0(slpc);
> >>   	if (unlikely(ret)) {
> >> -		drm_err(&i915->drm, "Failed to set SLPC max to RP0 (%pe)\n",
> >> -			ERR_PTR(ret));
> >> +		i915_probe_error(i915, "Failed to set SLPC max to RP0
> (%pe)\n",
> >> +				 ERR_PTR(ret));
> >>   		return ret;
> >>   	}
> >>
> >>   	/* Revert SLPC min/max to softlimits if necessary */
> >>   	ret = slpc_set_softlimits(slpc);
> >>   	if (unlikely(ret)) {
> >> -		drm_err(&i915->drm, "Failed to set SLPC softlimits (%pe)\n",
> >> -			ERR_PTR(ret));
> >> +		i915_probe_error(i915, "Failed to set SLPC softlimits (%pe)\n",
> >> +				 ERR_PTR(ret));
> >>   		return ret;
> >>   	}
> >>
> >> --
> >> 2.35.1
> >>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-04-14 16:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-12 22:48 [PATCH] drm/i915/guc/slpc: Use i915_probe_error instead of drm_err Vinay Belgaumkar
2022-04-14  6:41 ` [Intel-gfx] " Anshuman Gupta
2022-04-14 15:08   ` Belgaumkar, Vinay
2022-04-14 16:13     ` Jani Nikula
2022-04-14 16:17     ` Gupta, Anshuman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).