* [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line
@ 2018-10-24 18:06 Laurence Oberman
2018-10-24 18:14 ` Randy Dunlap
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Laurence Oberman @ 2018-10-24 18:06 UTC (permalink / raw)
To: linux-kernel, loberman; +Cc: rdunlap, tglx
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 <loberman@redhat.com>
---
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)
{
--
1.8.3.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line
2018-10-24 18:06 [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line Laurence Oberman
@ 2018-10-24 18:14 ` Randy Dunlap
2018-10-24 19:04 ` Randy Dunlap
2018-10-30 2:01 ` kbuild test robot
2 siblings, 0 replies; 4+ messages in thread
From: Randy Dunlap @ 2018-10-24 18:14 UTC (permalink / raw)
To: Laurence Oberman, linux-kernel; +Cc: tglx
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 <loberman@redhat.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line
2018-10-24 18:06 [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line Laurence Oberman
2018-10-24 18:14 ` Randy Dunlap
@ 2018-10-24 19:04 ` Randy Dunlap
2018-10-30 2:01 ` kbuild test robot
2 siblings, 0 replies; 4+ messages in thread
From: Randy Dunlap @ 2018-10-24 19:04 UTC (permalink / raw)
To: Laurence Oberman, linux-kernel; +Cc: tglx
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 <loberman@redhat.com>
> ---
> Documentation/admin-guide/kernel-parameters.txt | 7 +++++++
> init/main.c | 8 ++++++++
> 2 files changed, 15 insertions(+)
>
Laurence,
Here are a few more changes for you to consider.
> 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
No extra char indent above.
> + 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
>
#ifdef CONFIG_LOCKUP_DETECTOR
extern int watchdog_thresh;
> +static int __init is_watchdog_thresh_setup(char *str)
> +{
> + get_option(&str, &watchdog_thresh);
> + return 1;
> +}
> +__setup("watchdog_thresh=", is_watchdog_thresh_setup);
> +
#endif
and I would change the function name above to just watchdog_thresh_setup()
or setup_watchdog_thresh().
> +
> #ifdef CONFIG_STRICT_KERNEL_RWX
> static void mark_readonly(void)
> {
>
--
~Randy
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line
2018-10-24 18:06 [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line Laurence Oberman
2018-10-24 18:14 ` Randy Dunlap
2018-10-24 19:04 ` Randy Dunlap
@ 2018-10-30 2:01 ` kbuild test robot
2 siblings, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2018-10-30 2:01 UTC (permalink / raw)
To: Laurence Oberman; +Cc: kbuild-all, linux-kernel, loberman, rdunlap, tglx
[-- Attachment #1: Type: text/plain, Size: 1521 bytes --]
Hi Laurence,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linux-sof-driver/master]
[also build test ERROR on v4.19 next-20181029]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Laurence-Oberman/V4-init-main-c-Enable-watchdog_thresh-control-from-kernel-line/20181025-040136
base: https://github.com/thesofproject/linux master
config: i386-randconfig-k3-10291547 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
init/main.c: In function 'is_watchdog_thresh_setup':
>> init/main.c:1036:20: error: 'watchdog_thresh' undeclared (first use in this function); did you mean 'proc_watchdog_thresh'?
get_option(&str, &watchdog_thresh);
^~~~~~~~~~~~~~~
proc_watchdog_thresh
init/main.c:1036:20: note: each undeclared identifier is reported only once for each function it appears in
vim +1036 init/main.c
1033
1034 static int __init is_watchdog_thresh_setup(char *str)
1035 {
> 1036 get_option(&str, &watchdog_thresh);
1037 return 1;
1038 }
1039 __setup("watchdog_thresh=", is_watchdog_thresh_setup);
1040
1041
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27373 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-10-30 2:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-24 18:06 [PATCH] V4 init/main.c Enable watchdog_thresh control from kernel line Laurence Oberman
2018-10-24 18:14 ` Randy Dunlap
2018-10-24 19:04 ` Randy Dunlap
2018-10-30 2:01 ` kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).