[PATCH 0/8] drm/ast: Convert ast driver to SHMEM

Jocelyn Falempe jfalempe at redhat.com
Tue Oct 11 17:26:28 UTC 2022


Thanks a lot for your series. This solves a big performance impact when 
using Gnome/Wayland on some Aspeed chip, with BMC.
This also remove the need for "shadowFB" workaround in userspace.

With the small change in patch 8, and the two typo's,
the whole series is

Reviewed-by: Jocelyn Falempe <jfalempe at redhat.com>
Tested-by: Jocelyn Falempe <jfalempe at redhat.com>

Best regards,

-- 

Jocelyn

On 10/10/2022 12:36, Thomas Zimmermann wrote:
> This patchset converts ast to GEM SHMEM helpers. Fixes problems with
> memory allocation and BMC scanout updates.
> 
> Patches 1 to 3 are fixes for various minor problems in the ast driver.
> We should merge them even without SHMEM support.
> 
> Patches 4 to 6 prepare the driver for the conversion. The cursor double
> buffering is not required and prevents reuse among the plane code. Style
> issues are being fixed separately from the conversion.
> 
> The conversion itself is in patch 7. Not only does it fix problems with
> memory allocation, it also brings back several high-res display modes
> that got lost during the ast driver's conversion to atomic modesetting.
> There was an earlier RFC patch of this code that had issues with
> rendering performnce. [1] We've meanwhile improved these areas and
> performance was acceptable on the test systems.
> 
> With SHMEM in place, the scanout address for the primary plane does not
> have to be changed often. Patch 8 fixes a performance problem where the
> BMC output freezes for several seconds after reprogramming the scanout
> address.
> 
> Tested on AST 2100 and 2300 with fbdev emulation, weston, and Gnome in
> X11 and Wayland mode.
> 
> [1] https://lore.kernel.org/dri-devel/5a3537c3-2c81-b9de-e4c7-c00577cdd43d@suse.de/
> 
> Thomas Zimmermann (8):
>    drm/ast: Acquire I/O-register lock in atomic_commit_tail function
>    drm/ast: Call drm_atomic_helper_check_plane_state() unconditionally
>    drm/ast: Do not call drm_atomic_add_affected_planes()
>    drm/ast: Remove cursor double buffering
>    drm/ast: Rename struct ast_cursor_plane to struct ast_plane
>    drm/ast: Style cleanups in plane code
>    drm/ast: Convert ast to SHMEM
>    drm/ast: Avoid reprogramming primary-plane scanout address
> 
>   drivers/gpu/drm/ast/Kconfig    |   4 +-
>   drivers/gpu/drm/ast/ast_drv.c  |   4 +-
>   drivers/gpu/drm/ast/ast_drv.h  |  34 +--
>   drivers/gpu/drm/ast/ast_main.c |   5 +-
>   drivers/gpu/drm/ast/ast_mm.c   |  14 +-
>   drivers/gpu/drm/ast/ast_mode.c | 399 ++++++++++++++++-----------------
>   6 files changed, 219 insertions(+), 241 deletions(-)
> 
> 
> base-commit: 74e2443e7681e4d442b45f551ddf12d09a6f00c3



More information about the dri-devel mailing list