Message ID | 20200618133435.25425-1-tzimmermann@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/mgag200: Enable caching for SHMEM pages | expand |
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@suse.de> > Fixes: 913ec479bb5c ("drm/mgag200: Replace VRAM helpers with SHMEM helpers") > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Emil Velikov <emil.velikov@collabora.com> > Cc: Dave Airlie <airlied@redhat.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Krzysztof Kozlowski <krzk@kernel.org> > Cc: Gerd Hoffmann <kraxel@redhat.com> > Cc: Sam Ravnborg <sam@ravnborg.org> > Cc: Rong Chen <rong.a.chen@intel.com> > Cc: John Donnelly <john.p.donnelly@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 >
Hi Am 22.06.20 um 17:00 schrieb Rong Chen: > Hi Thomas, > > I tested the patch based on commit 24b806b0a1dd3, the regression Thanks! > of phoronix-test-suite.glmark2.1024x768.score still exists: I expected that the test is related to drawing onto the screen. Do you know what exactly it is testing? Best regards Thomas > > 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@suse.de> >> Fixes: 913ec479bb5c ("drm/mgag200: Replace VRAM helpers with SHMEM helpers") >> Cc: Thomas Zimmermann <tzimmermann@suse.de> >> Cc: Emil Velikov <emil.velikov@collabora.com> >> Cc: Dave Airlie <airlied@redhat.com> >> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> >> Cc: Krzysztof Kozlowski <krzk@kernel.org> >> Cc: Gerd Hoffmann <kraxel@redhat.com> >> Cc: Sam Ravnborg <sam@ravnborg.org> >> Cc: Rong Chen <rong.a.chen@intel.com> >> Cc: John Donnelly <john.p.donnelly@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 >>
On 6/22/20 11:12 PM, Thomas Zimmermann wrote: > Hi > > Am 22.06.20 um 17:00 schrieb Rong Chen: >> Hi Thomas, >> >> I tested the patch based on commit 24b806b0a1dd3, the regression > Thanks! > >> of phoronix-test-suite.glmark2.1024x768.score still exists: > I expected that the test is related to drawing onto the screen. Hi Thomas, This server doesn't connect a monitor. > Do you > know what exactly it is testing? It's a glmark2 test, please see https://openbenchmarking.org/test/pts/glmark2 the test command is ./glmark2 --annotate -s 1024x768 Best Regards, Rong Chen > Best regards > Thomas > >> 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@suse.de> >>> Fixes: 913ec479bb5c ("drm/mgag200: Replace VRAM helpers with SHMEM helpers") >>> Cc: Thomas Zimmermann <tzimmermann@suse.de> >>> Cc: Emil Velikov <emil.velikov@collabora.com> >>> Cc: Dave Airlie <airlied@redhat.com> >>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> >>> Cc: Krzysztof Kozlowski <krzk@kernel.org> >>> Cc: Gerd Hoffmann <kraxel@redhat.com> >>> Cc: Sam Ravnborg <sam@ravnborg.org> >>> Cc: Rong Chen <rong.a.chen@intel.com> >>> Cc: John Donnelly <john.p.donnelly@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 >>>
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, };
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@suse.de> Fixes: 913ec479bb5c ("drm/mgag200: Replace VRAM helpers with SHMEM helpers") Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Emil Velikov <emil.velikov@collabora.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Krzysztof Kozlowski <krzk@kernel.org> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Rong Chen <rong.a.chen@intel.com> Cc: John Donnelly <john.p.donnelly@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(+)