[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/console: process softirqs between warning prints
On 17.02.2022 09:28, Roger Pau Monne wrote: > Process softirqs while printing end of boot warnings. Each warning can > be several lines long, and on slow consoles printing multiple ones > without processing softirqs can result in the watchdog triggering: > > (XEN) [ 22.277806] *************************************************** > (XEN) [ 22.417802] WARNING: CONSOLE OUTPUT IS SYNCHRONOUS > (XEN) [ 22.556029] This option is intended to aid debugging of Xen by > ensuring > (XEN) [ 22.696802] that all output is synchronously delivered on the serial > line. > (XEN) [ 22.838024] However it can introduce SIGNIFICANT latencies and affect > (XEN) [ 22.978710] timekeeping. It is NOT recommended for production use! > (XEN) [ 23.119066] *************************************************** > (XEN) [ 23.258865] Booted on L1TF-vulnerable hardware with > SMT/Hyperthreading > (XEN) [ 23.399560] enabled. Please assess your configuration and choose an > (XEN) [ 23.539925] explicit 'smt=<bool>' setting. See XSA-273. > (XEN) [ 23.678860] *************************************************** > (XEN) [ 23.818492] Booted on MLPDS/MFBDS-vulnerable hardware with > SMT/Hyperthreading > (XEN) [ 23.959811] enabled. Mitigations will not be fully effective. > Please > (XEN) [ 24.100396] choose an explicit smt=<bool> setting. See XSA-297. > (XEN) [ 24.240254] *************************************************(XEN) [ > 24.247302] Watchdog timer detects that CPU0 is stuck! > (XEN) [ 24.386785] ----[ Xen-4.17-unstable x86_64 debug=y Tainted: C > ]---- > (XEN) [ 24.527874] CPU: 0 > (XEN) [ 24.662422] RIP: e008:[<ffff82d04025b84a>] > drivers/char/ns16550.c#ns16550_tx_ready+0x3a/0x90 > > Fixes: ee3fd57acd ('xen: add warning infrastructure') > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > --- > xen/common/warning.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/xen/common/warning.c b/xen/common/warning.c > index 0269c6715c..e6e1404baf 100644 > --- a/xen/common/warning.c > +++ b/xen/common/warning.c > @@ -30,6 +30,7 @@ void __init warning_print(void) > { > printk("%s", warnings[i]); > printk("***************************************************\n"); > + process_pending_softirqs(); > } To be honest, I'm not convinced. This gets us pretty close to needing to process softirqs after _every_ line of output. If a console is this slow, the problem imo needs dealing with there (and according to irc we appear on a helpful track there already), not by sprinkling more process_pending_softirqs() all over the code. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |