All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: "Chen, Rong A" <rong.a.chen@intel.com>, Feng Tang <feng.tang@intel.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>,
	michel@daenzer.net, lkp@01.org, linux-kernel@vger.kernel.org,
	dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [LKP] [drm/mgag200] 90f479ae51: vm-scalability.median -18.8% regression
Date: Tue, 27 Aug 2019 19:16:47 +0200	[thread overview]
Message-ID: <44029e80-ba00-8246-dec0-fda122d53f5e@suse.de> (raw)
In-Reply-To: <d114b0b6-6b64-406e-6c3f-a8b8d5502413@intel.com>


[-- Attachment #1.1.1: Type: text/plain, Size: 3041 bytes --]

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@lists.freedesktop.org
> 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)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.1.2: usecansleep.patch --]
[-- Type: text/x-patch; name="usecansleep.patch", Size: 838 bytes --]

From e6e72031e85e1ad4cbd38fb47f899bab54bf6bdc Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann <tzimmermann@suse.de>
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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de>
To: lkp@lists.01.org
Subject: Re: [drm/mgag200] 90f479ae51: vm-scalability.median -18.8% regression
Date: Tue, 27 Aug 2019 19:16:47 +0200	[thread overview]
Message-ID: <44029e80-ba00-8246-dec0-fda122d53f5e@suse.de> (raw)
In-Reply-To: <d114b0b6-6b64-406e-6c3f-a8b8d5502413@intel.com>

[-- Attachment #1: Type: text/plain, Size: 3043 bytes --]

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(a)lists.freedesktop.org
> 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)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: usecansleep.patch --]
[-- Type: text/x-patch, Size: 812 bytes --]

From e6e72031e85e1ad4cbd38fb47f899bab54bf6bdc Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann <tzimmermann@suse.de>
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 #3: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2019-08-27 17:16 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-29  9:51 [drm/mgag200] 90f479ae51: vm-scalability.median -18.8% regression kernel test robot
2019-07-29  9:51 ` kernel test robot
2019-07-30 17:50 ` Thomas Zimmermann
2019-07-30 17:50   ` Thomas Zimmermann
2019-07-30 18:12   ` Daniel Vetter
2019-07-30 18:12     ` Daniel Vetter
2019-07-30 18:50     ` Thomas Zimmermann
2019-07-30 18:50       ` Thomas Zimmermann
2019-07-30 18:59       ` Daniel Vetter
2019-07-30 18:59         ` Daniel Vetter
2019-07-30 20:26         ` Dave Airlie
2019-07-30 20:26           ` Dave Airlie
2019-07-31  8:13           ` Daniel Vetter
2019-07-31  8:13             ` Daniel Vetter
2019-07-31  9:25             ` [LKP] " Huang, Ying
2019-07-31  9:25               ` Huang, Ying
2019-07-31 10:12               ` [LKP] " Thomas Zimmermann
2019-07-31 10:12                 ` Thomas Zimmermann
2019-07-31 10:21               ` [LKP] " Michel Dänzer
2019-08-01  6:19                 ` Rong Chen
2019-08-01  6:19                   ` Rong Chen
2019-08-01  8:37                   ` [LKP] " Feng Tang
2019-08-01  8:37                     ` Feng Tang
2019-08-01  9:59                     ` [LKP] " Thomas Zimmermann
2019-08-01  9:59                       ` Thomas Zimmermann
2019-08-01 11:25                       ` [LKP] " Feng Tang
2019-08-01 11:25                         ` Feng Tang
2019-08-01 11:58                         ` [LKP] " Thomas Zimmermann
2019-08-01 11:58                           ` Thomas Zimmermann
2019-08-02  7:11                           ` [LKP] " Rong Chen
2019-08-02  7:11                             ` Rong Chen
2019-08-02  8:23                             ` [LKP] " Thomas Zimmermann
2019-08-02  8:23                               ` Thomas Zimmermann
2019-08-02  9:20                             ` [LKP] " Thomas Zimmermann
2019-08-02  9:20                               ` Thomas Zimmermann
2019-08-01  9:57                   ` [LKP] " Thomas Zimmermann
2019-08-01  9:57                     ` Thomas Zimmermann
2019-08-01 13:30                   ` [LKP] " Michel Dänzer
2019-08-02  8:17                     ` Thomas Zimmermann
2019-08-02  8:17                       ` Thomas Zimmermann
2019-07-31 10:10             ` Thomas Zimmermann
2019-07-31 10:10               ` Thomas Zimmermann
2019-08-02  9:11               ` Daniel Vetter
2019-08-02  9:11                 ` Daniel Vetter
2019-08-02  9:26                 ` Thomas Zimmermann
2019-08-02  9:26                   ` Thomas Zimmermann
2019-08-04 18:39   ` Thomas Zimmermann
2019-08-04 18:39     ` Thomas Zimmermann
2019-08-05  7:02     ` Feng Tang
2019-08-05  7:02       ` Feng Tang
2019-08-05  7:28       ` Rong Chen
2019-08-05 10:25         ` Thomas Zimmermann
2019-08-05 10:25           ` Thomas Zimmermann
2019-08-06 12:59           ` [LKP] " Chen, Rong A
2019-08-06 12:59             ` Chen, Rong A
2019-08-07 10:42             ` [LKP] " Thomas Zimmermann
2019-08-07 10:42               ` Thomas Zimmermann
2019-08-09  8:12               ` [LKP] " Rong Chen
2019-08-09  8:12                 ` Rong Chen
2019-08-12  7:25                 ` [LKP] " Feng Tang
2019-08-12  7:25                   ` Feng Tang
2019-08-13  9:36                   ` [LKP] " Feng Tang
2019-08-13  9:36                     ` Feng Tang
2019-08-13  9:36                     ` [LKP] " Feng Tang
2019-08-16  6:55                     ` Feng Tang
2019-08-16  6:55                       ` Feng Tang
2019-08-22 17:25                     ` [LKP] " Thomas Zimmermann
2019-08-22 17:25                       ` Thomas Zimmermann
2019-08-22 17:25                       ` [LKP] " Thomas Zimmermann
2019-08-22 20:02                       ` Dave Airlie
2019-08-22 20:02                         ` Dave Airlie
2019-08-23  9:54                         ` [LKP] " Thomas Zimmermann
2019-08-23  9:54                           ` Thomas Zimmermann
2019-08-23  9:54                           ` [LKP] " Thomas Zimmermann
2019-08-24  5:16                       ` Feng Tang
2019-08-24  5:16                         ` Feng Tang
2019-08-24  5:16                         ` [LKP] " Feng Tang
2019-08-26 10:50                         ` Thomas Zimmermann
2019-08-26 10:50                           ` Thomas Zimmermann
2019-08-27 12:33                           ` [LKP] " Chen, Rong A
2019-08-27 12:33                             ` Chen, Rong A
2019-08-27 12:33                             ` [LKP] " Chen, Rong A
2019-08-27 17:16                             ` Thomas Zimmermann [this message]
2019-08-27 17:16                               ` Thomas Zimmermann
2019-08-28  9:37                               ` [LKP] " Rong Chen
2019-08-28  9:37                                 ` Rong Chen
2019-08-28 10:51                                 ` [LKP] " Thomas Zimmermann
2019-08-28 10:51                                   ` Thomas Zimmermann
2019-09-04  6:27                                   ` [LKP] " Feng Tang
2019-09-04  6:27                                     ` Feng Tang
2019-09-04  6:53                                     ` [LKP] " Thomas Zimmermann
2019-09-04  6:53                                       ` Thomas Zimmermann
2019-09-04  8:11                                       ` [LKP] " Daniel Vetter
2019-09-04  8:11                                         ` Daniel Vetter
2019-09-04  8:35                                         ` [LKP] " Feng Tang
2019-09-04  8:35                                           ` Feng Tang
2019-09-04  8:43                                           ` [LKP] " Thomas Zimmermann
2019-09-04  8:43                                             ` Thomas Zimmermann
2019-09-04 14:30                                             ` [LKP] " Chen, Rong A
2019-09-04 14:30                                               ` Chen, Rong A
2019-09-04  9:17                                           ` [LKP] " Daniel Vetter
2019-09-04  9:17                                             ` Daniel Vetter
2019-09-04 11:15                                             ` [LKP] " Dave Airlie
2019-09-04 11:15                                               ` Dave Airlie
2019-09-04 11:20                                               ` [LKP] " Daniel Vetter
2019-09-04 11:20                                                 ` Daniel Vetter
2019-09-04 11:20                                                 ` [LKP] " Daniel Vetter
2019-09-05  6:59                                                 ` Feng Tang
2019-09-05  6:59                                                   ` Feng Tang
2019-09-05 10:37                                                   ` [LKP] " Daniel Vetter
2019-09-05 10:37                                                     ` Daniel Vetter
2019-09-05 10:48                                                     ` [LKP] " Feng Tang
2019-09-05 10:48                                                       ` Feng Tang
2019-09-05 10:48                                                       ` [LKP] " Feng Tang
2019-09-09 14:12                                     ` Thomas Zimmermann
2019-09-09 14:12                                       ` Thomas Zimmermann
2019-09-09 14:12                                       ` [LKP] " Thomas Zimmermann
2019-09-16  9:06                                       ` Feng Tang
2019-09-16  9:06                                         ` Feng Tang
2019-09-17  8:48                                         ` [LKP] " Thomas Zimmermann
2019-09-17  8:48                                           ` Thomas Zimmermann
2019-09-17  8:48                                           ` [LKP] " Thomas Zimmermann
2019-08-05 10:22       ` Thomas Zimmermann
2019-08-05 10:22         ` Thomas Zimmermann
2019-08-05 12:52         ` Feng Tang
2019-08-05 12:52           ` Feng Tang
2020-01-06 13:19           ` Thomas Zimmermann
2020-01-06 13:19             ` Thomas Zimmermann
2020-01-08  2:25             ` Rong Chen
2020-01-08  2:28               ` Rong Chen
2020-01-08  5:20               ` Thomas Zimmermann
2020-01-08  5:20                 ` Thomas Zimmermann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44029e80-ba00-8246-dec0-fda122d53f5e@suse.de \
    --to=tzimmermann@suse.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=feng.tang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@01.org \
    --cc=michel@daenzer.net \
    --cc=rong.a.chen@intel.com \
    --cc=sfr@canb.auug.org.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.