All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Helge Deller <deller@gmx.de>
Cc: Thomas Zimmermann <tzimmermann@suse.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	Sven Schnelle <svens@stackframe.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Javier Martinez Canillas <javierm@redhat.com>,
	Daniel Vetter <daniel.vetter@intel.com>,
	Ilia Mirkin <imirkin@alum.mit.edu>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Pavel Machek <pavel@ucw.cz>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Sam Ravnborg <sam@ravnborg.org>, Claudio Suarez <cssk@net-c.es>
Subject: Re: [PATCH 0/2] Fix regression introduced by disabling accelerated scrolling in fbcon
Date: Wed, 19 Jan 2022 13:45:53 +0100	[thread overview]
Message-ID: <CAMuHMdXj2WsQ2htP63vXD_PRuhrqry3GgD8U1tJQ99BkQPQL=w@mail.gmail.com> (raw)
In-Reply-To: <20220119110839.33187-1-deller@gmx.de>

Hi Helge,

On Wed, Jan 19, 2022 at 12:10 PM Helge Deller <deller@gmx.de> wrote:
> This series reverts two patches which disabled scrolling acceleration in
> fbcon/fbdev. Those patches introduced a regression for fbdev-supported graphic
> cards because of the performance penalty by doing screen scrolling by software
> instead of using hardware acceleration.
>
> Console scrolling acceleration was disabled by dropping code which checked at
> runtime the driver hardware possibilities for the BINFO_HWACCEL_COPYAREA or
> FBINFO_HWACCEL_FILLRECT flags and if set, it enabled scrollmode SCROLL_MOVE
> which uses hardware acceleration to move screen contents.  After dropping those
> checks scrollmode was hard-wired to SCROLL_REDRAW instead, which forces all
> graphic cards to redraw every character at the new screen position when
> scrolling.
>
> This change effectively disabled all hardware-based scrolling acceleration for
> ALL drivers, because now all kind of 2D hardware acceleration (bitblt,
> fillrect) in the drivers isn't used any longer.
>
> The original commit message mentions that only 3 DRM drivers (nouveau, omapdrm
> and gma500) used hardware acceleration in the past and thus code for checking
> and using scrolling acceleration is obsolete.
>
> This statement is NOT TRUE, because beside the DRM drivers there are around 35
> other fbdev drivers which depend on fbdev/fbcon and still provide hardware
> acceleration for fbdev/fbcon.
>
> The original commit message also states that syzbot found lots of bugs in fbcon
> and thus it's "often the solution to just delete code and remove features".
> This is true, and the bugs - which actually affected all users of fbcon,
> including DRM - were fixed, or code was dropped like e.g. the support for
> software scrollback in vgacon (commit 973c096f6a85).
>
> So to further analyze which bugs were found by syzbot, I've looked through all
> patches in drivers/video which were tagged with syzbot or syzkaller back to
> year 2005. The vast majority fixed the reported issues on a higher level, e.g.
> when screen is to be resized, or when font size is to be changed. The few ones
> which touched driver code fixed a real driver bug, e.g. by adding a check.
>
> But NONE of those patches touched code of either the SCROLL_MOVE or the
> SCROLL_REDRAW case.
>
> That means, there was no real reason why SCROLL_MOVE had to be ripped-out and
> just SCROLL_REDRAW had to be used instead. The only reason I can imagine so far
> was that SCROLL_MOVE wasn't used by DRM and as such it was assumed that it
> could go away. That argument completely missed the fact that SCROLL_MOVE is
> still heavily used by fbdev (non-DRM) drivers.
>
> Some people mention that using memcpy() instead of the hardware acceleration is
> pretty much the same speed. But that's not true, at least not for older graphic
> cards and machines where we see speed decreases by factor 10 and more and thus
> this change leads to console responsiveness way worse than before.
>
> That's why I propose to revert those patches, re-introduce hardware-based
> scrolling acceleration and fix the performance-regression for fbdev drivers.
> There isn't any impact on DRM when reverting those patches.
>
> Helge Deller (2):
>   Revert "fbdev: Garbage collect fbdev scrolling acceleration, part 1
>     (from TODO list)"
>   Revert "fbcon: Disable accelerated scrolling"

Thank you for this series, and the prior analysis!

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Helge Deller <deller@gmx.de>
Cc: Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	Pavel Machek <pavel@ucw.cz>, Sam Ravnborg <sam@ravnborg.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Sven Schnelle <svens@stackframe.org>,
	Javier Martinez Canillas <javierm@redhat.com>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Claudio Suarez <cssk@net-c.es>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Daniel Vetter <daniel.vetter@intel.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [PATCH 0/2] Fix regression introduced by disabling accelerated scrolling in fbcon
Date: Wed, 19 Jan 2022 13:45:53 +0100	[thread overview]
Message-ID: <CAMuHMdXj2WsQ2htP63vXD_PRuhrqry3GgD8U1tJQ99BkQPQL=w@mail.gmail.com> (raw)
In-Reply-To: <20220119110839.33187-1-deller@gmx.de>

Hi Helge,

On Wed, Jan 19, 2022 at 12:10 PM Helge Deller <deller@gmx.de> wrote:
> This series reverts two patches which disabled scrolling acceleration in
> fbcon/fbdev. Those patches introduced a regression for fbdev-supported graphic
> cards because of the performance penalty by doing screen scrolling by software
> instead of using hardware acceleration.
>
> Console scrolling acceleration was disabled by dropping code which checked at
> runtime the driver hardware possibilities for the BINFO_HWACCEL_COPYAREA or
> FBINFO_HWACCEL_FILLRECT flags and if set, it enabled scrollmode SCROLL_MOVE
> which uses hardware acceleration to move screen contents.  After dropping those
> checks scrollmode was hard-wired to SCROLL_REDRAW instead, which forces all
> graphic cards to redraw every character at the new screen position when
> scrolling.
>
> This change effectively disabled all hardware-based scrolling acceleration for
> ALL drivers, because now all kind of 2D hardware acceleration (bitblt,
> fillrect) in the drivers isn't used any longer.
>
> The original commit message mentions that only 3 DRM drivers (nouveau, omapdrm
> and gma500) used hardware acceleration in the past and thus code for checking
> and using scrolling acceleration is obsolete.
>
> This statement is NOT TRUE, because beside the DRM drivers there are around 35
> other fbdev drivers which depend on fbdev/fbcon and still provide hardware
> acceleration for fbdev/fbcon.
>
> The original commit message also states that syzbot found lots of bugs in fbcon
> and thus it's "often the solution to just delete code and remove features".
> This is true, and the bugs - which actually affected all users of fbcon,
> including DRM - were fixed, or code was dropped like e.g. the support for
> software scrollback in vgacon (commit 973c096f6a85).
>
> So to further analyze which bugs were found by syzbot, I've looked through all
> patches in drivers/video which were tagged with syzbot or syzkaller back to
> year 2005. The vast majority fixed the reported issues on a higher level, e.g.
> when screen is to be resized, or when font size is to be changed. The few ones
> which touched driver code fixed a real driver bug, e.g. by adding a check.
>
> But NONE of those patches touched code of either the SCROLL_MOVE or the
> SCROLL_REDRAW case.
>
> That means, there was no real reason why SCROLL_MOVE had to be ripped-out and
> just SCROLL_REDRAW had to be used instead. The only reason I can imagine so far
> was that SCROLL_MOVE wasn't used by DRM and as such it was assumed that it
> could go away. That argument completely missed the fact that SCROLL_MOVE is
> still heavily used by fbdev (non-DRM) drivers.
>
> Some people mention that using memcpy() instead of the hardware acceleration is
> pretty much the same speed. But that's not true, at least not for older graphic
> cards and machines where we see speed decreases by factor 10 and more and thus
> this change leads to console responsiveness way worse than before.
>
> That's why I propose to revert those patches, re-introduce hardware-based
> scrolling acceleration and fix the performance-regression for fbdev drivers.
> There isn't any impact on DRM when reverting those patches.
>
> Helge Deller (2):
>   Revert "fbdev: Garbage collect fbdev scrolling acceleration, part 1
>     (from TODO list)"
>   Revert "fbcon: Disable accelerated scrolling"

Thank you for this series, and the prior analysis!

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  parent reply	other threads:[~2022-01-19 12:46 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-19 11:08 [PATCH 0/2] Fix regression introduced by disabling accelerated scrolling in fbcon Helge Deller
2022-01-19 11:08 ` [PATCH 1/2] Revert "fbdev: Garbage collect fbdev scrolling acceleration, part 1 (from TODO list)" Helge Deller
2022-01-19 11:08 ` [PATCH 2/2] Revert "fbcon: Disable accelerated scrolling" Helge Deller
2022-01-19 11:22   ` Greg Kroah-Hartman
2022-01-19 11:22     ` Greg Kroah-Hartman
2022-01-19 11:28     ` Greg Kroah-Hartman
2022-01-19 11:28       ` Greg Kroah-Hartman
2022-01-19 11:47       ` Geert Uytterhoeven
2022-01-19 11:47         ` Geert Uytterhoeven
2022-01-19 12:28         ` Helge Deller
2022-01-19 12:28           ` Helge Deller
2022-01-19 14:01           ` Linus Torvalds
2022-01-19 14:01             ` Linus Torvalds
2022-01-19 14:11             ` Helge Deller
2022-01-19 14:11               ` Helge Deller
2022-01-19 14:34             ` Daniel Vetter
2022-01-19 14:34               ` Daniel Vetter
2022-01-19 15:05               ` Sven Schnelle
2022-01-19 15:05                 ` Sven Schnelle
2022-01-19 15:37                 ` Thomas Zimmermann
2022-01-19 15:37                   ` Thomas Zimmermann
2022-01-19 16:55                   ` Helge Deller
2022-01-19 16:55                     ` Helge Deller
2022-01-19 15:42                 ` Daniel Vetter
2022-01-19 15:42                   ` Daniel Vetter
2022-01-19 15:54                   ` Helge Deller
2022-01-19 15:54                     ` Helge Deller
2022-01-19 16:13                     ` Jani Nikula
2022-01-19 16:13                       ` Jani Nikula
2022-01-19 16:31                       ` Daniel Vetter
2022-01-19 16:31                         ` Daniel Vetter
2022-01-19 15:18               ` Helge Deller
2022-01-19 15:18                 ` Helge Deller
2022-01-19 13:01       ` Sven Schnelle
2022-01-19 13:01         ` Sven Schnelle
2022-01-19 13:35         ` Greg Kroah-Hartman
2022-01-19 13:35           ` Greg Kroah-Hartman
2022-01-20 14:30   ` Daniel Vetter
2022-01-20 14:30     ` Daniel Vetter
2022-01-20 17:01     ` Helge Deller
2022-01-21  7:20       ` Gerd Hoffmann
2022-01-21  7:20         ` Gerd Hoffmann
2022-01-24 11:10         ` Helge Deller
2022-01-24 11:10           ` Helge Deller
2022-01-24 11:28           ` Javier Martinez Canillas
2022-01-24 11:28             ` Javier Martinez Canillas
2022-01-24 11:33           ` Thomas Zimmermann
2022-01-24 11:33             ` Thomas Zimmermann
2022-01-24 11:50             ` Javier Martinez Canillas
2022-01-24 11:50               ` Javier Martinez Canillas
2022-01-24 15:29               ` Helge Deller
2022-01-24 15:29                 ` Helge Deller
2022-01-24 15:45                 ` Thomas Zimmermann
2022-01-24 15:45                   ` Thomas Zimmermann
2022-01-24 15:50                 ` Geert Uytterhoeven
2022-01-24 15:50                   ` Geert Uytterhoeven
2022-01-24 15:58                 ` Daniel Vetter
2022-01-24 15:58                   ` Daniel Vetter
2022-01-24 15:50             ` Geert Uytterhoeven
2022-01-24 15:50               ` Geert Uytterhoeven
2022-01-24 16:11               ` Thomas Zimmermann
2022-01-24 16:11                 ` Thomas Zimmermann
2022-01-19 12:45 ` Geert Uytterhoeven [this message]
2022-01-19 12:45   ` [PATCH 0/2] Fix regression introduced by disabling accelerated scrolling in fbcon Geert Uytterhoeven
2022-01-19 13:02 ` Sven Schnelle
2022-01-19 13:02   ` Sven Schnelle

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='CAMuHMdXj2WsQ2htP63vXD_PRuhrqry3GgD8U1tJQ99BkQPQL=w@mail.gmail.com' \
    --to=geert@linux-m68k.org \
    --cc=cssk@net-c.es \
    --cc=daniel.vetter@intel.com \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=imirkin@alum.mit.edu \
    --cc=jani.nikula@linux.intel.com \
    --cc=javierm@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=sam@ravnborg.org \
    --cc=svens@stackframe.org \
    --cc=tomi.valkeinen@ti.com \
    --cc=torvalds@linux-foundation.org \
    --cc=tzimmermann@suse.de \
    /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.