[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] console: increase initial conring size
In general initial conring size is sufficient. However, if log level is increased on platforms which have e.g. huge number of memory regions (I have an IBM System x3550 M2 with 8 GiB RAM which has more than 200 entries in EFI memory map) then some of earlier messages in console ring are overwritten. It means that in case of issues deeper analysis can be hindered. Sadly conring_size argument does not help because new console buffer is allocated late on heap. It means that it is not possible to allocate larger ring earlier. So, in this situation initial conring size should be increased. My experiments showed that even on not so big machines more than 26 KiB of free space are needed for initial messages. In theory we could increase conring size buffer to 32 KiB. However, I think that this value could be too small for huge machines with large number of ACPI tables and EFI memory regions. Hence, this patch increases initial conring size to 64 KiB. Signed-off-by: Daniel Kiper <daniel.kiper@xxxxxxxxxx> --- This bug (or lack of feature if you prefer) should be fixed, as it was pointed out by Jan Beulich and Olaf Hering, by allocating conring earlier. I though about that before posting this patch (I did not know beforehand about Olaf's work made in 2011). However, I stated that it is too late to make so intrusive changes. So, I think we should (sadly) apply this "band-aid" to 4.5 because, as you can see in Xen-devel archive, this bug hits more and more people and they fix this issue in the same way as I did in this patch. On the other hand I agree that we should finally fix this issue in better way. Hence, I am adding this thing to my TODO list. v2 - suggestions/fixes: - update documentation (suggested by Andrew Cooper), - add rationale (suggested by Jan Beulich). --- docs/misc/xen-command-line.markdown | 2 +- xen/drivers/char/console.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 0866df2..2ad2340 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -286,7 +286,7 @@ A typical setup for most situations might be `com1=115200,8n1` ### conring\_size > `= <size>` -> Default: `conring_size=16k` +> Default: `conring_size=64k` Specify the size of the console ring buffer. diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 2f03259..429d296 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -67,7 +67,7 @@ custom_param("console_timestamps", parse_console_timestamps); static uint32_t __initdata opt_conring_size; size_param("conring_size", opt_conring_size); -#define _CONRING_SIZE 16384 +#define _CONRING_SIZE 65536 #define CONRING_IDX_MASK(i) ((i)&(conring_size-1)) static char __initdata _conring[_CONRING_SIZE]; static char *__read_mostly conring = _conring; -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |