Hi Am 27.08.19 um 14:33 schrieb Chen, Rong A: > > Both patches have little impact on the performance from our side. Thanks for testing. Too bad they doesn't solve the issue. There's another patch attached. Could you please tests this as well? Thanks a lot! The patch comes from Daniel Vetter after discussing the problem on IRC. The idea of the patch is that the old mgag200 code might display much less frames that the generic code, because mgag200 only prints from non-atomic context. If we simulate this with the generic code, we should see roughly the original performance. Best regards Thomas > > prefetch.patch: > commit: > f1f8555dfb9 drm/bochs: Use shadow buffer for bochs framebuffer console > 90f479ae51a drm/mgag200: Replace struct mga_fbdev with generic > framebuffer emulation > 77459f56994 prefetch shadow buffer two lines ahead of blit offset > > f1f8555dfb9a70a2 90f479ae51afa45efab97afdde 77459f56994ab87ee5459920b3 > testcase/testparams/testbox > ---------------- -------------------------- -------------------------- > --------------------------- > %stddev change %stddev change %stddev > \ | \ | \ > 42912 -15% 36517 -17% 35515 > vm-scalability/performance-300s-8T-anon-cow-seq-hugetlb/lkp-knm01 > 42912 -15% 36517 -17% 35515 > GEO-MEAN vm-scalability.median > > schedule.patch: > commit: > f1f8555dfb9 drm/bochs: Use shadow buffer for bochs framebuffer console > 90f479ae51a drm/mgag200: Replace struct mga_fbdev with generic > framebuffer emulation > ccc5f095c61 schedule dirty worker on local core > > f1f8555dfb9a70a2 90f479ae51afa45efab97afdde ccc5f095c61ff6eded0f0ab1b7 > testcase/testparams/testbox > ---------------- -------------------------- -------------------------- > --------------------------- > %stddev change %stddev change %stddev > \ | \ | \ > 42912 -15% 36517 -15% 36556 ± 4% > vm-scalability/performance-300s-8T-anon-cow-seq-hugetlb/lkp-knm01 > 42912 -15% 36517 -15% 36556 > GEO-MEAN vm-scalability.median > > Best Regards, > Rong Chen > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Thomas Zimmermann Graphics Driver Developer SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 21284 (AG Nürnberg)
From e6e72031e85e1ad4cbd38fb47f899bab54bf6bdc Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann <tzimmermann@xxxxxxx> Date: Tue, 27 Aug 2019 19:00:41 +0200 Subject: only schedule worker from non-atomic context --- drivers/gpu/drm/drm_fb_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index a7ba5b4902d6..3a3e4784eb28 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -642,7 +642,8 @@ static void drm_fb_helper_dirty(struct fb_info *info, u32 x, u32 y, clip->y2 = max_t(u32, clip->y2, y + height); spin_unlock_irqrestore(&helper->dirty_lock, flags); - schedule_work(&helper->dirty_work); + if (drm_can_sleep()) + schedule_work(&helper->dirty_work); } /** -- 2.22.0
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel