[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 29/36] xen/console: make console buffer size configurable



From: Denis Mukhin <dmukhin@xxxxxxxx>

Add new CONRING_LOG_SHIFT Kconfig parameter to specify the boot console buffer
size as a power of 2.

Bump default size to 32 KiB.

Link: https://gitlab.com/xen-project/xen/-/issues/185
Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
---
 xen/drivers/char/Kconfig   | 23 +++++++++++++++++++++++
 xen/drivers/char/console.c |  4 ++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index 
e175d07c022b051c5af4e689061adba72f9b54a0..2c754545cf05e740bd3d59d88de464f3653fb68e
 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -93,6 +93,29 @@ config SERIAL_TX_BUFSIZE
 
          Default value is 32768 (32KiB).
 
+config CONRING_LOG_SHIFT
+       int "Console buffer size"
+       range 14 25
+       default 15
+       help
+         Select the boot console buffer size as a power of 2.
+         Run-time console buffer size is the same as the boot console size,
+         unless enforced via 'conring_size=' boot parameter.
+
+         Examples:
+           25 =>  32 MiB
+           24 =>  16 MiB
+           23 =>   8 MiB
+           22 =>   4 MiB
+           21 =>   2 MiB
+           20 =>   1 MiB
+           19 => 512 KiB
+           18 => 256 KiB
+           17 => 128 KiB
+           16 =>  64 KiB
+           15 =>  32 KiB
+           14 =>  16 KiB
+
 config XHCI
        bool "XHCI DbC UART driver"
        depends on X86
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 
9f67ecb26f5ab1183d17c83631a17b45cfefd5ab..24a8263045b0e5ecf901d08e627f34a80edd297d
 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -102,11 +102,11 @@ static int cf_check parse_console_timestamps(const char 
*s);
 custom_runtime_param("console_timestamps", parse_console_timestamps,
                      con_timestamp_mode_upd);
 
-/* conring_size: allows a large console ring than default (16kB). */
+/* conring_size: allows a large console ring than default (32 KiB). */
 static uint32_t __initdata opt_conring_size;
 size_param("conring_size", opt_conring_size);
 
-#define _CONRING_SIZE 16384
+#define _CONRING_SIZE       (1U << CONFIG_CONRING_LOG_SHIFT)
 #define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
 static char __initdata _conring[_CONRING_SIZE];
 static char *__read_mostly conring = _conring;

-- 
2.34.1





 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.