[PATCH] drm/mgag200: Enable caching for SHMEM pages
Rong Chen
rong.a.chen at intel.com
Mon Jun 22 15:00:50 UTC 2020
Hi Thomas,
I tested the patch based on commit 24b806b0a1dd3, the regression
of phoronix-test-suite.glmark2.1024x768.score still exists:
1f58fcaf27cb7 drm/mgag200: Enable caching for SHMEM pages 2 2 2
24b806b0a1dd3 drm-tip: 2020y-06m-22d-07h-52m-06s UTC integration manifest 2 2 2 2 2
913ec479bb5cc drm/mgag200: Replace VRAM helpers with SHMEM helpers 2 2 2 2 2
88fabb75ea9ed drm/mgag200: Convert to simple KMS helper 165 168 167 165 164
Best Regards,
Rong Chen
On Thu, Jun 18, 2020 at 03:34:35PM +0200, Thomas Zimmermann wrote:
> We've had reports about performance regressions after switching
> mgag200 from VRAM helpers to SHMEM helpers. SHMEM pages use
> writecombine caching by default, but can also use the platform's
> default page caching. Doing so improves the performance of I/O
> on the framebuffer.
>
> Mgag200's hardware does not access framebuffer pages directly (i.e.,
> via DMA), so enabling caching does not have an effect on consistency
> of the framebuffer memory or the displayed data.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> Fixes: 913ec479bb5c ("drm/mgag200: Replace VRAM helpers with SHMEM helpers")
> Cc: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: Emil Velikov <emil.velikov at collabora.com>
> Cc: Dave Airlie <airlied at redhat.com>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Cc: Krzysztof Kozlowski <krzk at kernel.org>
> Cc: Gerd Hoffmann <kraxel at redhat.com>
> Cc: Sam Ravnborg <sam at ravnborg.org>
> Cc: Rong Chen <rong.a.chen at intel.com>
> Cc: John Donnelly <john.p.donnelly at Oracle.com>
> Link: https://lore.kernel.org/dri-devel/20200617092252.GA5279@shao2-debian/
> ---
> drivers/gpu/drm/mgag200/mgag200_drv.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c
> index e19660f4a637..7189c7745baf 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_drv.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c
> @@ -36,6 +36,7 @@ static struct drm_driver mgag200_driver = {
> .major = DRIVER_MAJOR,
> .minor = DRIVER_MINOR,
> .patchlevel = DRIVER_PATCHLEVEL,
> + .gem_create_object = drm_gem_shmem_create_object_cached,
> DRM_GEM_SHMEM_DRIVER_OPS,
> };
>
> --
> 2.27.0
>
More information about the dri-devel
mailing list