1. 11 9月, 2018 1 次提交
  2. 29 8月, 2018 1 次提交
  3. 07 8月, 2018 1 次提交
    • C
      drm/i915: Interactive RPS mode · 027063b1
      Chris Wilson 提交于
      RPS provides a feedback loop where we use the load during the previous
      evaluation interval to decide whether to up or down clock the GPU
      frequency. Our responsiveness is split into 3 regimes, a high and low
      plateau with the intent to keep the gpu clocked high to cover occasional
      stalls under high load, and low despite occasional glitches under steady
      low load, and inbetween. However, we run into situations like kodi where
      we want to stay at low power (video decoding is done efficiently
      inside the fixed function HW and doesn't need high clocks even for high
      bitrate streams), but just occasionally the pipeline is more complex
      than a video decode and we need a smidgen of extra GPU power to present
      on time. In the high power regime, we sample at sub frame intervals with
      a bias to upclocking, and conversely at low power we sample over a few
      frames worth to provide what we consider to be the right levels of
      responsiveness respectively. At low power, we more or less expect to be
      kicked out to high power at the start of a busy sequence by waitboosting.
      
      Prior to commit e9af4ea2 ("drm/i915: Avoid waitboosting on the active
      request") whenever we missed the frame or stalled, we would immediate go
      full throttle and upclock the GPU to max. But in commit e9af4ea2, we
      relaxed the waitboosting to only apply if the pipeline was deep to avoid
      over-committing resources for a near miss. Sadly though, a near miss is
      still a miss, and perceptible as jitter in the frame delivery.
      
      To try and prevent the near miss before having to resort to boosting
      after the fact, we use the pageflip queue as an indication that we are
      in an "interactive" regime and so should sample the load more frequently
      to provide power before the frame misses it vblank. This will make us
      more favorable to providing a small power increase (one or two bins) as
      required rather than going all the way to maximum and then having to
      work back down again. (We still keep the waitboosting mechanism around
      just in case a dramatic change in system load requires urgent uplocking,
      faster than we can provide in a few evaluation intervals.)
      
      v2: Reduce rps_set_interactive to a boolean parameter to avoid the
      confusion of what if they wanted a new power mode after pinning to a
      different mode (which to choose?)
      v3: Only reprogram RPS while the GT is awake, it will be set when we
      wake the GT, and while off warns about being used outside of rpm.
      v4: Fix deferred application of interactive mode
      v5: s/state/interactive/
      v6: Group the mutex with its principle in a substruct
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107111
      Fixes: e9af4ea2 ("drm/i915: Avoid waitboosting on the active request")
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180731132629.3381-1-chris@chris-wilson.co.uk
      (cherry picked from commit 60548c554be2830d29d2533dad0ac8133347ee51)
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      027063b1
  4. 26 7月, 2018 1 次提交
  5. 18 7月, 2018 1 次提交
  6. 14 7月, 2018 1 次提交
  7. 13 7月, 2018 1 次提交
  8. 10 7月, 2018 1 次提交
  9. 06 7月, 2018 2 次提交
  10. 05 7月, 2018 1 次提交
  11. 03 7月, 2018 1 次提交
  12. 02 7月, 2018 1 次提交
  13. 29 6月, 2018 1 次提交
  14. 26 6月, 2018 1 次提交
    • I
      drm/i915/ddi: Get AUX power domain for DP main link too · 52528055
      Imre Deak 提交于
      So far we got an AUX power domain reference only for the duration of DP
      AUX transfers. However, the following suggests that we also need these
      for main link functionality:
      - The specification doesn't state whether it's needed or not for main
        link functionality, but suggests that these power wells need to be
        enabled already during display core initialization (Sequences to
        Initialize Display).
      - For PSR we need to keep the AUX power well enabled.
      - On ICL combo PHY ports (non-TC) the AUX power well is needed for
        link training too: while the port is enabled with a DP link training
        test pattern trying to toggle the AUX power well will time out.
      - On ICL MG PHY ports (TC) the AUX power well is needed also for main
        link functionality (both in DP and HDMI modes).
      - Windows enables these power wells both for main and AUX lane
        functionality.
      
      Based on the above take an AUX power reference for main link
      functionality too. This makes a difference only on GEN10+ (GLK+)
      platforms, where we have separate port specific AUX power wells.
      
      For PSR we still need to distinguish between port A and the other
      ports, since on port A DC states must stay enabled for main link
      functionality, but DC states must be disabled for driver initiated
      AUX transfers. So re-use the corresponding helper from intel_psr.c.
      
      Since we take now a reference for main link functionality on all DP
      ports we can forgo taking the separate power ref for PSR functionality.
      
      v2:
      - Make sure DC states stay enabled when taking the ref on port A.
        (Ville)
      
      v3: (Ville)
      - Fix comment about logic for encoders without a crtc state and
        add FIXME note for a simplification to avoid calling get_power_domains
        in such cases.
      - Use intel_crtc_has_dp_encoder() instead !intel_crtc_has_type(HDMI).
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      [Clarified code comments in intel_ddi_main_link_aux_domain() and
       intel_ddi_get_power_domains() (Imre)]
      Reviewed-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180621184449.26634-1-imre.deak@intel.com
      52528055
  15. 25 6月, 2018 1 次提交
  16. 22 6月, 2018 1 次提交
  17. 19 6月, 2018 3 次提交
  18. 15 6月, 2018 4 次提交
  19. 14 6月, 2018 1 次提交
  20. 12 6月, 2018 1 次提交
  21. 07 6月, 2018 1 次提交
  22. 02 6月, 2018 1 次提交
  23. 01 6月, 2018 5 次提交
  24. 31 5月, 2018 2 次提交
  25. 26 5月, 2018 1 次提交
  26. 25 5月, 2018 2 次提交
  27. 24 5月, 2018 1 次提交
  28. 23 5月, 2018 1 次提交