Re: [PATCH] drm/i915: Make RPS EI/thresholds multiple of 25 on SNB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 20, 2016 at 04:43:56PM +0300, ville.syrjala@xxxxxxxxxxxxxxx wrote:
> From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> 
> Somehow my SNB GT1 (Dell XPS 8300) gets very unhappy around
> GPU hangs if the RPS EI/thresholds aren't suitably aligned.
> It seems like scheduling/timer interupts stop working somehow
> and things get stuck eg. in usleep_range().
> 
> I bisected the problem down to
> commit 8a5864377b12 ("drm/i915/skl: Restructured the gen6_set_rps_thresholds function")
> I observed that before all the values were at least multiples of 25,
> but afterwards they are not. And rounding things up to the next multiple
> of 25 does seem to help, so lets' do that. I also tried roundup(..., 5)
> but that wasn't sufficient. Also I have no idea if we might need this sort of
> thing on gen9+ as well.
> 
> These are the original EI/thresholds:
>  LOW_POWER
>   GEN6_RP_UP_EI          12500
>   GEN6_RP_UP_THRESHOLD   11800
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 21250
>  BETWEEN
>   GEN6_RP_UP_EI          10250
>   GEN6_RP_UP_THRESHOLD    9225
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 18750
>  HIGH_POWER
>   GEN6_RP_UP_EI           8000
>   GEN6_RP_UP_THRESHOLD    6800
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 15000
> 
> These are after 8a5864377b12:
>  LOW_POWER
>   GEN6_RP_UP_EI          12500
>   GEN6_RP_UP_THRESHOLD   11875
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 21250
>  BETWEEN
>   GEN6_RP_UP_EI          10156
>   GEN6_RP_UP_THRESHOLD    9140
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 18750
>  HIGH_POWER
>   GEN6_RP_UP_EI           7812
>   GEN6_RP_UP_THRESHOLD    6640
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 15000
> 
> And these are what we have after this patch:
>  LOW_POWER
>   GEN6_RP_UP_EI          12500
>   GEN6_RP_UP_THRESHOLD   11875
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 21250
>  BETWEEN
>   GEN6_RP_UP_EI          10175
>   GEN6_RP_UP_THRESHOLD    9150
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 18750
>  HIGH_POWER
>   GEN6_RP_UP_EI           7825
>   GEN6_RP_UP_THRESHOLD    6650
>   GEN6_RP_DOWN_EI        25000
>   GEN6_RP_DOWN_THRESHOLD 15000
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: Akash Goel <akash.goel@xxxxxxxxx>
> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Testcase: igt/kms_pipe_crc_basic/hang-read-crc-pipe-B
> Fixes: 8a5864377b12 ("drm/i915/skl: Restructured the gen6_set_rps_thresholds function")
> Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>

Wow. The change is semantically sound, so

Acked-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]