From: "Manuel Schölling" <manuel.schoelling@gmx.de> To: gregkh@linuxfoundation.org Cc: jslaby@suse.com, kilobyte@angband.pl, lkml14@scotdoyle.com, rdunlap@infradead.org, shorne@gmail.com, andrey_utkin@fastmail.com, akpm@linux-foundation.org, paul.burton@imgtec.com, daniel.vetter@ffwll.ch, tj@kernel.org, hdegoede@redhat.com, linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, "Manuel Schölling" <manuel.schoelling@gmx.de> Subject: [PATCH v9 4/4] console: Make persistent scrollback a boot parameter Date: Tue, 10 Jan 2017 22:28:38 +0100 [thread overview] Message-ID: <20170110212838.16175-5-manuel.schoelling@gmx.de> (raw) In-Reply-To: <20170110212838.16175-1-manuel.schoelling@gmx.de> In-Reply-To: <4640722.jsFVORW8WM@amdc3058> The impact of the persistent scrollback feature on the code size is rather small, so the config option is removed. The feature stays disabled by default and can be enabled by using the boot command line parameter 'vgacon.scrollback_persistent=1' or by setting VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT=y. Signed-off-by: Manuel Schölling <manuel.schoelling@gmx.de> Suggested-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> --- drivers/video/console/Kconfig | 12 +++++++----- drivers/video/console/vgacon.c | 25 ++++++++++++------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig index f500e58f7636..5b71bd905a60 100644 --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig @@ -47,14 +47,16 @@ config VGACON_SOFT_SCROLLBACK_SIZE buffers of VGA consoles. Each 64KB will give you approximately 16 80x25 screenfuls of scrollback buffer. -config VGACON_SOFT_SCROLLBACK_PERSISTENT - bool "Persistent Scrollback History for each console" +config VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT + bool "Persistent Scrollback History for each console by default" depends on VGACON_SOFT_SCROLLBACK default n help - Say Y here if the scrollback history should persist when switching - between consoles. Otherwise, the scrollback history will be flushed - each time the console is switched. + Say Y here if the scrollback history should persist by default when + switching between consoles. Otherwise, the scrollback history will be + flushed each time the console is switched. This feature can also be + enabled using the boot command line parameter + 'vgacon.scrollback_persistent=1'. This feature might break your tool of choice to flush the scrollback buffer, e.g. clear(1) will work fine but Debian's clear_console(1) diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index ca23d222e029..45a76972495b 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c @@ -174,11 +174,9 @@ struct vgacon_scrollback_info { }; static struct vgacon_scrollback_info *vgacon_scrollback_cur; -#ifdef CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT static struct vgacon_scrollback_info vgacon_scrollbacks[MAX_NR_CONSOLES]; -#else -static struct vgacon_scrollback_info vgacon_scrollbacks[1]; -#endif +static bool scrollback_persistent = \ + IS_ENABLED(CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT); static void vgacon_scrollback_reset(int vc_num, size_t reset_size) { @@ -213,20 +211,19 @@ static void vgacon_scrollback_init(int vc_num) static void vgacon_scrollback_switch(int vc_num) { -#ifndef CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT - vc_num = 0; -#endif + if (!scrollback_persistent) + vc_num = 0; if (!vgacon_scrollbacks[vc_num].data) { vgacon_scrollback_init(vc_num); } else { -#ifdef CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT - vgacon_scrollback_cur = &vgacon_scrollbacks[vc_num]; -#else - size_t size = CONFIG_VGACON_SOFT_SCROLLBACK_SIZE * 1024; + if (scrollback_persistent) { + vgacon_scrollback_cur = &vgacon_scrollbacks[vc_num]; + } else { + size_t size = CONFIG_VGACON_SOFT_SCROLLBACK_SIZE * 1024; - vgacon_scrollback_reset(vc_num, size); -#endif + vgacon_scrollback_reset(vc_num, size); + } } } @@ -1423,4 +1420,6 @@ const struct consw vga_con = { }; EXPORT_SYMBOL(vga_con); +module_param_named(scrollback_persistent, scrollback_persistent, bool, 0000); +MODULE_PARM_DESC(scrollback_persistent, "Enable persistent scrollback for all vga consoles"); MODULE_LICENSE("GPL"); -- 2.11.0
next prev parent reply other threads:[~2017-01-10 21:30 UTC|newest] Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-12-04 10:53 [PATCH v7 0/3] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling 2016-12-04 10:53 ` [PATCH v7 1/3] console: Move scrollback data into its own struct Manuel Schölling 2016-12-04 10:53 ` [PATCH v7 2/3] console: Add callback to flush scrollback buffer to consw struct Manuel Schölling 2016-12-04 10:53 ` [PATCH v7 3/3] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling 2016-12-06 10:02 ` [PATCH v7 0/3] " Greg KH 2016-12-06 16:32 ` Manuel Schölling 2016-12-21 16:37 ` [PATCH RESEND " Manuel Schölling 2016-12-21 16:37 ` [PATCH RESEND v7 1/3] console: Move scrollback data into its own struct Manuel Schölling 2016-12-21 16:37 ` [PATCH RESEND v7 2/3] console: Add callback to flush scrollback buffer to consw struct Manuel Schölling 2016-12-21 16:37 ` [PATCH RESEND v7 3/3] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling 2017-01-04 13:54 ` [PATCH RESEND v7 0/3] " Andrey Utkin 2017-01-05 11:33 ` [PATCH v8 " Manuel Schölling 2017-01-05 11:33 ` [PATCH v8 1/3] console: Move scrollback data into its own struct Manuel Schölling 2017-01-05 11:33 ` [PATCH v8 2/3] console: Add callback to flush scrollback buffer to consw struct Manuel Schölling 2017-01-05 11:33 ` [PATCH v8 3/3] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling [not found] ` <CGME20170110162224epcas1p2095912fa6b73a1457fa86396149e78e9@epcas1p2.samsung.com> 2017-01-10 16:22 ` Bartlomiej Zolnierkiewicz [not found] ` <CGME20170110164435epcas1p314efb9c6ea3ffb971fce06f3bfaec736@epcas1p3.samsung.com> 2017-01-10 16:44 ` Bartlomiej Zolnierkiewicz 2017-01-10 17:31 ` Manuel Schölling 2017-01-10 21:28 ` [PATCH v9 0/4] " Manuel Schölling 2017-01-10 21:28 ` [PATCH v9 1/4] console: Move scrollback data into its own struct Manuel Schölling 2017-01-10 21:28 ` [PATCH v9 2/4] console: Add callback to flush scrollback buffer to consw struct Manuel Schölling 2017-01-10 21:28 ` [PATCH v9 3/4] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling 2017-01-10 21:28 ` Manuel Schölling [this message] 2017-01-10 22:58 ` [PATCH v9 4/4] console: Make persistent scrollback a boot parameter Adam Borowski 2017-01-11 21:41 ` Manuel Schölling 2017-01-13 20:00 ` Manuel Schölling 2017-01-14 7:26 ` Greg KH 2017-01-11 13:32 ` kbuild test robot 2017-01-13 20:07 ` [PATCH v10 0/4] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling 2017-01-25 10:55 ` Greg KH 2017-01-13 20:07 ` [PATCH v10 1/4] console: Move scrollback data into its own struct Manuel Schölling 2017-01-13 20:07 ` [PATCH v10 2/4] console: Add callback to flush scrollback buffer to consw struct Manuel Schölling 2017-01-13 20:07 ` [PATCH v10 3/4] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling 2017-01-19 13:23 ` Greg KH 2017-01-19 16:12 ` Manuel Schölling 2017-01-19 16:33 ` Greg KH 2017-01-19 23:04 ` Adam Borowski 2017-01-20 13:16 ` Adam Borowski 2017-01-20 13:31 ` Greg KH 2017-01-20 14:27 ` Adam Borowski 2017-01-19 17:20 ` Adam Borowski 2017-01-13 20:07 ` [PATCH v10 4/4] console: Make persistent scrollback a boot parameter Manuel Schölling 2017-02-02 20:07 ` [PATCH v9 " Paul Gortmaker 2017-02-03 16:04 ` Manuel Schölling 2017-02-03 16:45 ` Adam Borowski 2017-01-02 14:27 ` [PATCH RESEND v7 0/3] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling 2017-01-02 14:27 ` [PATCH RESEND v7 1/3] console: Move scrollback data into its own struct Manuel Schölling 2017-01-02 14:27 ` [PATCH RESEND v7 2/3] console: Add callback to flush scrollback buffer to consw struct Manuel Schölling 2017-01-02 14:27 ` [PATCH RESEND v7 3/3] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling
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=20170110212838.16175-5-manuel.schoelling@gmx.de \ --to=manuel.schoelling@gmx.de \ --cc=akpm@linux-foundation.org \ --cc=andrey_utkin@fastmail.com \ --cc=daniel.vetter@ffwll.ch \ --cc=gregkh@linuxfoundation.org \ --cc=hdegoede@redhat.com \ --cc=jslaby@suse.com \ --cc=kilobyte@angband.pl \ --cc=linux-fbdev@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lkml14@scotdoyle.com \ --cc=paul.burton@imgtec.com \ --cc=rdunlap@infradead.org \ --cc=shorne@gmail.com \ --cc=tj@kernel.org \ --subject='Re: [PATCH v9 4/4] console: Make persistent scrollback a boot parameter' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).