[PATCH v3 0/5] drm: Fix fb changes for async updates
From: Helen Koike
Date: Wed Mar 13 2019 - 20:20:56 EST
Hello,
This series fixes the slow down in performance introduced by
"[PATCH v2] drm: Block fb changes for async plane updates" where async update
falls back to a sync update, causing igt failures of type:
"CRITICAL: completed 97 cursor updated in a period of 30 flips, we
expect to complete approximately 15360 updates, with the threshold set
at 7680"
Please read the commit message of "drm: don't block fb changes for async
plane updates" to understand how it works.
I tested on the rockchip, on i915 and on vc4 with igt plane_cursor_legacy and
kms_cursor_legacy and I didn't see any regressions.
I couldn't test on MSM and AMD because I don't have the hardware
I would appreciate if anyone could help me testing those.
v1 link: https://patchwork.kernel.org/cover/10837847/
Thanks!
Helen
Changes in v3:
- use swap() to swap old and new framebuffers in async_update
- get the reference to old_fb and set the worker after vop_plane_atomic_update()
- add a FIXME tag for when we have multiple fbs to be released when
vblank happens.
- update commit message
- Add Reviewed-by tags
- Add TODO in drm_atomic_helper_async_commit()
Changes in v2:
- added reviewed-by tag
- update CC stable and Fixes tag
- Added reviewed-by tag
- updated CC stable and Fixes tag
- Change the order of the patch in the series, add this as the last one.
- Add documentation
- s/ballanced/balanced
Helen Koike (5):
drm/rockchip: fix fb references in async update
drm/amd: fix fb references in async update
drm/msm: fix fb references in async update
drm/vc4: fix fb references in async update
drm: don't block fb changes for async plane updates
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +-
drivers/gpu/drm/drm_atomic_helper.c | 22 ++++----
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 4 ++
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 51 ++++++++++---------
drivers/gpu/drm/vc4/vc4_plane.c | 2 +-
include/drm/drm_modeset_helper_vtables.h | 5 ++
6 files changed, 49 insertions(+), 38 deletions(-)
--
2.20.1