diff mbox series

[2/2] drm/i915: Let's avoid even early init if SLPC is used.

Message ID 20220902095126.373036-2-rodrigo.vivi@intel.com (mailing list archive)
State New, archived
Headers show
Series [1/2] drm/i915: Don't try to disable host RPS when this was never enabled. | expand

Commit Message

Rodrigo Vivi Sept. 2, 2022, 9:51 a.m. UTC
SLPC has its own waiboost variables and lock mechanism.
No need for these extra stuff, in special no need for the
timer.

Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_rps.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Dixit, Ashutosh Sept. 2, 2022, 2:16 p.m. UTC | #1
On Fri, 02 Sep 2022 02:51:26 -0700, Rodrigo Vivi wrote:
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index 6fadde4ee7bf..c29652281f2e 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -1960,6 +1960,9 @@ void gen5_rps_irq_handler(struct intel_rps *rps)
>
>  void intel_rps_init_early(struct intel_rps *rps)
>  {
> +	if (rps_uses_slpc(rps))
> +		return;
> +

Hi Rodrigo, Let me double check with you, this works correctly at this
place, correct? Looks like things to make this work should get initialized
in intel_uc_init_early() which is called just before intel_rps_init_early()
so looks ok (can't tell for sure with all those uc macros :/):

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

>	mutex_init(&rps->lock);
>	mutex_init(&rps->power.mutex);
>
> --
> 2.37.2
>
Rodrigo Vivi Sept. 2, 2022, 2:41 p.m. UTC | #2
On Fri, 2022-09-02 at 07:16 -0700, Dixit, Ashutosh wrote:
> On Fri, 02 Sep 2022 02:51:26 -0700, Rodrigo Vivi wrote:
> > 
> > diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c
> > b/drivers/gpu/drm/i915/gt/intel_rps.c
> > index 6fadde4ee7bf..c29652281f2e 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> > @@ -1960,6 +1960,9 @@ void gen5_rps_irq_handler(struct intel_rps
> > *rps)
> > 
> >  void intel_rps_init_early(struct intel_rps *rps)
> >  {
> > +       if (rps_uses_slpc(rps))
> > +               return;
> > +
> 
> Hi Rodrigo, Let me double check with you, this works correctly at
> this
> place, correct? Looks like things to make this work should get
> initialized
> in intel_uc_init_early() which is called just before
> intel_rps_init_early()
> so looks ok (can't tell for sure with all those uc macros :/):

yeap, I hate those uc macros as well!

In theory it should work well since

@ static void __intel_gt_init_early(struct intel_gt *gt)
      intel_uc_init_early(&gt->uc);                                   
      intel_rps_init_early(&gt->rps);                                 
}                    

And it works well when slpc is enabled...
But our CI showed this is a disaster when SLPC is not used.

I will have to fix that.


> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> 
> >         mutex_init(&rps->lock);
> >         mutex_init(&rps->power.mutex);
> > 
> > --
> > 2.37.2
> >
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
index 6fadde4ee7bf..c29652281f2e 100644
--- a/drivers/gpu/drm/i915/gt/intel_rps.c
+++ b/drivers/gpu/drm/i915/gt/intel_rps.c
@@ -1960,6 +1960,9 @@  void gen5_rps_irq_handler(struct intel_rps *rps)
 
 void intel_rps_init_early(struct intel_rps *rps)
 {
+	if (rps_uses_slpc(rps))
+		return;
+
 	mutex_init(&rps->lock);
 	mutex_init(&rps->power.mutex);