linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Andi Kleen <andi@firstfloor.org>
Cc: Radoslaw Szkodzinski <lkml@astralstorm.puszkin.org>,
	Arjan van de Ven <arjan@infradead.org>,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [feature] automatically detect hung TASK_UNINTERRUPTIBLE tasks
Date: Mon, 3 Dec 2007 12:59:00 +0100	[thread overview]
Message-ID: <20071203115900.GB8432@elte.hu> (raw)
In-Reply-To: <20071203110412.GD28560@one.firstfloor.org>


* Andi Kleen <andi@firstfloor.org> wrote:

> On Mon, Dec 03, 2007 at 11:38:15AM +0100, Ingo Molnar wrote:
> > 
> > * Andi Kleen <andi@firstfloor.org> wrote:
> > 
> > > > Kernel waiting 2 minutes on TASK_UNINTERRUPTIBLE is certainly broken.
> > > 
> > > What should it do when the NFS server doesn't answer anymore or when 
> > > the network to the SAN RAID array located a few hundred KM away 
> > > develops some hickup?  [...]
> > 
> > maybe: if the user does a Ctrl-C (or a kill -9), the kernel should 
> > try
> 
> You mean NFS intr should be default? [...]

no. (that's why i added the '(or a kill -9)' qualification above - if 
NFS is mounted noninterruptible then standard signals (such as Ctrl-C) 
should not have an interrupting effect.)

> If you consider any of the arguments in the following paragraph "not 
> rational" please state your objection precisely. Thanks.
> 
> Consider the block case: First a lot of block IO runs over networks 
> too these days (iSCSI, drbd, nbd, SANs etc.) so the same 
> considerations as for other network file systems apply.  Networks can 
> have hickups and might take long to recover. Now implementing 
> TASK_KILLABLE in all block IO paths there properly is equivalent to 
> implementing EIOCBRETRY aio because it has to error out in near the 
> same ways in all the same places.  While I would like to see that (and 
> it would probably make syslets obsolete too ;-) it has been rejected 
> as too difficult in the past.

your syslet snide comment aside (which is quite incomprehensible - a 
retry based asynchonous IO model is clearly inferior even if it were 
implemented everywhere), i do think that most if not all of these 
supposedly "difficult to fix" codepaths are just on the backburner out 
of lack of a clear blame vector.

"audit thousands of callsites in 8 million lines of code first" is a 
nice euphemism for hiding from the blame forever. We had 10 years for it 
and it didnt happen. As we've seen it again and again, getting a 
non-fatal reminder in the dmesg about the suckage is quite efficient at 
getting people to fix crappy solutions, and gives users and exact blame 
point of where to start. That will create pressure to fix these 
problems.

> > I think you are somehow confusing two issues: this patch in no way 
> > declares that "long waits are bad" - if the user _choses_ to wait 
> > for
> 
> Throwing a backtrace is the kernel's way to declare something as bad. 
> The only more clear ways to that I know of would be BUG or panic().

there are various levels of declarig something bad, and you are quite 
wrong to suggest that a BUG() would be the only recourse.

> > way to stop_ are quite likely bad".
> 
> The user will just see the backtraces and think the kernel has 
> crashed.

i've just changed the message to:

  INFO: task keventd/5 blocked for more than 120 seconds.
  "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message

	Ingo

  reply	other threads:[~2007-12-03 11:59 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-01  9:20 [feature] automatically detect hung TASK_UNINTERRUPTIBLE tasks Ingo Molnar
2007-12-01 18:31 ` David Rientjes
2007-12-01 18:33   ` Ingo Molnar
2007-12-01 18:42 ` David Rientjes
2007-12-01 19:36   ` Ingo Molnar
2007-12-02  0:54     ` Ingo Oeser
2007-12-02  8:58       ` Ingo Molnar
2007-12-02 15:52       ` David Rientjes
2007-12-02 18:57 ` Andi Kleen
2007-12-02 18:59   ` Ingo Molnar
2007-12-02 19:41     ` Arjan van de Ven
2007-12-02 20:08       ` Ingo Molnar
2007-12-02 20:09       ` Andi Kleen
2007-12-02 20:26         ` Ingo Molnar
2007-12-02 20:47           ` Andi Kleen
2007-12-02 21:10             ` Ingo Molnar
2007-12-02 21:19               ` Andi Kleen
2007-12-02 21:24                 ` Ingo Molnar
2007-12-02 21:34                   ` Andi Kleen
2007-12-02 22:25                     ` Ingo Molnar
2007-12-02 22:18                 ` Arjan van de Ven
2007-12-02 22:20                 ` Ingo Molnar
2007-12-03  0:00                   ` Andi Kleen
2007-12-02 22:43             ` Arjan van de Ven
2007-12-03  0:07               ` Andi Kleen
2007-12-03  0:59                 ` Arjan van de Ven
2007-12-03  9:55                   ` Andi Kleen
2007-12-03 10:15                     ` Radoslaw Szkodzinski
2007-12-03 10:23                       ` Ingo Molnar
2007-12-03 10:27                       ` Andi Kleen
2007-12-03 10:38                         ` Ingo Molnar
2007-12-03 11:04                           ` Andi Kleen
2007-12-03 11:59                             ` Ingo Molnar [this message]
2007-12-03 12:13                               ` Andi Kleen
2007-12-03 12:28                                 ` Ingo Molnar
2007-12-03 12:41                                   ` Andi Kleen
2007-12-03 13:00                                     ` Ingo Molnar
2007-12-03 13:14                                       ` Andi Kleen
     [not found]                                         ` <20071203132955.GA31354@elte.hu>
2007-12-03 13:41                                           ` Radoslaw Szkodzinski
2007-12-03 13:59                                             ` Ingo Molnar
2007-12-03 14:15                                               ` Andi Kleen
2007-12-03 13:48                                           ` Andi Kleen
2007-12-03 13:55                                             ` Ingo Molnar
2007-12-03 14:17                                               ` Andi Kleen
2007-12-03 14:33                                                 ` Ingo Molnar
2007-12-03 17:02                                                 ` Ray Lee
2007-12-03 13:50                                 ` Pekka Enberg
2007-12-03 13:57                                   ` Ingo Molnar
2007-12-03 14:14                                   ` Andi Kleen
2007-12-03 14:19                                     ` Ingo Molnar
2007-12-03 17:57                                       ` Andrew Morton
2007-12-03 18:28                                         ` Rafael J. Wysocki
2007-12-03 19:24                                           ` Ingo Molnar
2007-12-03 22:47                                             ` Rafael J. Wysocki
2007-12-04  0:05                                               ` Ingo Molnar
2007-12-03 15:23                         ` Arjan van de Ven
2007-12-03 16:36                           ` Andi Kleen
2007-12-05 22:31                           ` Mark Lord

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071203115900.GB8432@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=arjan@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkml@astralstorm.puszkin.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).