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