2018-10-24 15:22:46

by Laurence Oberman

[permalink] [raw]
Subject: [PATCH] init/main.c Enable watchdog_thresh control from kernel line

Both graphics and serial consoels 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]>
---
init/main.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/init/main.c b/init/main.c
index e4a3160..5882750 100644
--- a/init/main.c
+++ b/init/main.c
@@ -977,6 +977,15 @@ 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)
{
--
1.8.3.1



2018-10-24 15:33:25

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] init/main.c Enable watchdog_thresh control from kernel line

Hi,

On 10/24/18 8:21 AM, Laurence Oberman wrote:
> Both graphics and serial consoels are exposed to hard lockups

consoles

> 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]>

Please add corresponding documentation to the
Documentation/admin-guide/kernel-parameters.txt file.

Thanks.

> ---
> init/main.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/init/main.c b/init/main.c
> index e4a3160..5882750 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -977,6 +977,15 @@ 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