On 10/24/18 11:06 AM, Laurence Oberman wrote: > Both graphics and serial consoles are exposed to hard lockups > when handling a large amount of messaging. The kernel watchdog_thresh > parameter up to now has not been available to be set on the kernel line for > early boot. > This patch allows the setting of watchdog_thresh to be increased > when needed to avoid the hard lockups in the console code. > > Signed-off-by: Laurence Oberman <[email protected]>
Acked-by: Randy Dunlap <[email protected]> Thanks. > --- > Documentation/admin-guide/kernel-parameters.txt | 7 +++++++ > init/main.c | 8 ++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/Documentation/admin-guide/kernel-parameters.txt > b/Documentation/admin-guide/kernel-parameters.txt > index 4cdcd1a..05f76b8 100644 > --- a/Documentation/admin-guide/kernel-parameters.txt > +++ b/Documentation/admin-guide/kernel-parameters.txt > @@ -4932,6 +4932,13 @@ > or other driver-specific files in the > Documentation/watchdog/ directory. > > + watchdog_thresh= > + This parameter allows early boot to change the > + value of the watchdog timeout threshold from the default > + of 10 seconds to avoid hard lockups. Example: > + watchdog_thresh=30 > + Default: 10 > + > workqueue.watchdog_thresh= > If CONFIG_WQ_WATCHDOG is configured, workqueue can > warn stall conditions and dump internal state to > diff --git a/init/main.c b/init/main.c > index 1c3f902..ae45291 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -1038,6 +1038,14 @@ static int __init set_debug_rodata(char *str) > __setup("rodata=", set_debug_rodata); > #endif > > +static int __init is_watchdog_thresh_setup(char *str) > +{ > + get_option(&str, &watchdog_thresh); > + return 1; > +} > +__setup("watchdog_thresh=", is_watchdog_thresh_setup); > + > + > #ifdef CONFIG_STRICT_KERNEL_RWX > static void mark_readonly(void) > { > -- ~Randy

