Hi Thomas, On 8/28/19 1:16 AM, Thomas Zimmermann wrote: > 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. > > It's cool, the patch "usecansleep.patch" can fix the issue. commit:   f1f8555dfb9 drm/bochs: Use shadow buffer for bochs framebuffer console   90f479ae51a drm/mgag200: Replace struct mga_fbdev with generic framebuffer emulation   b976b04c2bc only schedule worker from non-atomic context f1f8555dfb9a70a2  90f479ae51afa45efab97afdde b976b04c2bcf33148d6c7bc1a2  testcase/testparams/testbox ----------------  -------------------------- --------------------------  ---------------------------          %stddev      change         %stddev      change %stddev              \          |                \          | \      42912             -15%      36517 44093 vm-scalability/performance-300s-8T-anon-cow-seq-hugetlb/lkp-knm01      42912             -15%      36517 44093        GEO-MEAN vm-scalability.median Best Regards, Rong Chen