[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180608145821.ec20a15944d1d19b683695e7@linux-foundation.org>
Date: Fri, 8 Jun 2018 14:58:21 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Dmitry Vyukov <dvyukov@...gle.com>
Cc: penguin-kernel@...ove.SAKURA.ne.jp, paulmck@...ux.vnet.ibm.com,
linux-kernel@...r.kernel.org, syzkaller@...glegroups.com
Subject: Re: [PATCH] kernel/hung_task.c: allow to set period separately from
timeout
On Fri, 8 Jun 2018 15:30:43 +0200 Dmitry Vyukov <dvyukov@...gle.com> wrote:
> Currently task hung checking period is equal to timeout,
> as the result hung is detected anywhere between timeout and 2*timeout.
> This is fine for most interactive environments, but this hurts automated
> testing setups (syzbot). In an automated setup we need to strictly order
> CPU lockup < RCU stall < workqueue lockup < task hung < silent loss,
> so that RCU stall is not detected as task hung and task hung is not
> detected as silent machine loss. The large variance in task hung
> detection timeout requires setting silent machine loss timeout to
> a very large value (e.g. if task hung is 3 mins, then silent loss
> need to be set to ~7 mins). The additional 3 minutes significantly
> reduce testing efficiency because usually we crash kernel within
> a minute, and this can add hours to bug localization process as it
> needs to do dozens of tests.
>
> Allow setting checking period separately from timeout.
> This allows to set timeout to, say, 3 minutes, but period to 10 secs.
>
> The period is controlled via a new hung_task_period_secs sysctl,
> similar to the existing hung_task_timeout_secs sysctl.
> The default value of 0 results in the current behavior.
I'm rather struggling to understand the difference between "period" and
"timeout". We would benefit from a clear description of what these two
things do. An appropriate place for this description is
Documentation/sysctl/kernel.txt, which this patch forgot to update.
Powered by blists - more mailing lists