1. 06 Sep, 2021 1 commit
  2. 29 Aug, 2021 2 commits
  3. 26 Aug, 2021 12 commits
  4. 25 Aug, 2021 4 commits
  5. 24 Aug, 2021 17 commits
  6. 21 Aug, 2021 3 commits
  7. 20 Aug, 2021 1 commit
    • Michel Dänzer's avatar
      drm/amdgpu: Cancel delayed work when GFXOFF is disabled · 90a92662
      Michel Dänzer authored
      schedule_delayed_work does not push back the work if it was already
      scheduled before, so amdgpu_device_delay_enable_gfx_off ran ~100 ms
      after the first time GFXOFF was disabled and re-enabled, even if GFXOFF
      was disabled and re-enabled again during those 100 ms.
      
      This resulted in frame drops / stutter with the upcoming mutter 41
      release on Navi 14, due to constantly enabling GFXOFF in the HW and
      disabling it again (for getting the GPU clock counter).
      
      To fix this, call cancel_delayed_work_sync when the disable count
      transitions from 0 to 1, and only schedule the delayed work on the
      reverse transition, not if the disable count was already 0. This makes
      sure the delayed work doesn't run at unexpected times, and allows it to
      be lock-free.
      
      v2:
      * Use cancel_delayed_work_sync & mutex_trylock instead of
        mod_delayed_work.
      v3:
      * Make amdgpu_device_delay_enable_gfx_off lock-free (Christian König)
      v4:
      * Fix race condition between amdgpu_gfx_off_ctrl incrementing
        adev->gfx.gfx_off_req_count and amdgpu_device_delay_enable_gfx_off
        checking for it to be 0 (Evan Quan)
      
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> # v3
      Acked-by: Christian König <christian.koenig@amd.com> # v3
      Signed-off-by: default avatarMichel Dänzer <mdaenzer@redhat.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      90a92662