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

[PATCH v2 26/35] 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 
e6e12bb4139717f9319031f51f5d20155d2caee2..3bc892fc38d8cdeb3c76ea44d747f712a8d0d372
 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -96,6 +96,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 
d22fb4a253af26f9b51d91bd408e1dbf4bb5a7c1..581ee22b85302a54db5b9d5d28e8b2d689d31403
 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -104,11 +104,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®.