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-23 17:34:14
Also in: lkml

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.

Signed-off-by: Manuel Schölling <redacted>
---
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.
Thanks again for reporting this issue. I was finally able to reproduce
it.
Looks like the same problem arises when implementing persistent
scrollback buffers for framebuffer consoles. I will have to think about
the underlying issue a bit more, but I guess that the consw struct needs
another field for a function that flushes the scrollback buffer.
Before this was just done by switching the console, which is fine if you
just have one buffer. But now each console has its own buffer, so simply
calling vc_data's vc_sw->con_switch() won't be sufficient anymore.

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