Thread (24 messages) 24 messages, 5 authors, 2016-12-01

Re: [PATCH v5 2/2] console: Add persistent scrollback buffers for all VGA consoles

From: Manuel Schölling <hidden>
Date: 2016-11-22 16:56:59
Also in: lkml

Hi Adam,

On Mo, 2016-11-21 at 21:17 +0100, Adam Borowski wrote:
On Sun, Nov 20, 2016 at 10:58:08PM +0100, Manuel Schölling wrote:
quoted
Add a scrollback buffers for each VGA console. The benefit is that
the scrollback history is not flushed when switching between consoles
but is persistent.
The buffers are allocated on demand when a new console is opened.

This breaks tools like clear_console that rely on flushing the
scrollback history by switching back and forth between consoles
which is why this feature is disabled by default.
Use the escape sequence \e[3J instead for flushing the buffer.
First, big thanks for this fix, it's something that greatly annoyed me
since forever!
Yeah, me too! ;)
The thing about clear_console is unfortunate: they abused the bug you're
fixing.  I've asked to use \e[3J (https://bugs.debian.org/845177) so there's
hope it'll be applied in stretch; with Debian configuring its glibc to
support only kernels from two releases before (in jessie that's 2.6.32, in
stretch 3.2)[1] there's hope we can flip the default in several years.

Do you suspect any other program relies on VT switch to clear the
scrollback?
Not, AFAIK. Although I do not have a complete list of programs that are
suppose to do that.
But alas, this commit breaks that very \e[3J.  It does only a \e[2J, leaving
the scrollback uncleared.  For comparison, both mainline and with just your
preparatory commit, \e[3J works as expected.
Really? All my tests worked fine: I compiled the kernel with the latest patches, started the kernel in QEMU and then did

  $ openvt /bin/sh
  $ echo -e '\e[3J' # scrollback buffer was flushed correctly
  $ chvt 2
  $ echo -e '\e[3J' # scrollback buffer was flushed correctly

Can you tell me how you tested it? Maybe I can reproduce the bug.

Thanks for spending the time to test it!

Bye,

Manuel

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help