public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jesper Juhl <jesper.juhl@gmail.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Andrew Morton <akpm@osdl.org>,
	shurick@sectorb.msk.ru, linux-kernel@vger.kernel.org,
	Jesper Juhl <jesper.juhl@gmail.com>
Subject: Re: [BUG] 2.6.15-rc1, soft lockup detected while probing IDE devices on AMD7441
Date: Wed, 23 Nov 2005 20:17:51 +0100	[thread overview]
Message-ID: <200511232017.52788.jesper.juhl@gmail.com> (raw)
In-Reply-To: <1132605524.11842.38.camel@localhost.localdomain>

On Monday 21 November 2005 21:38, Alan Cox wrote:
> On Sul, 2005-11-20 at 17:29 -0800, Andrew Morton wrote:
> > Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> > > Quite normal. The old IDE probe code takes a long time and it makes the
> > > soft lockup code believe a lockup occurred - rememeber its a debugging
> > > tool not a 100% reliable detector of failures.
> > > 
> > 
> > We could put a touch_softlockup_watchdog() in there.
> 
> Would make sense. Spin up and probe can take over 30 seconds worst case
> and is polled in the IDE world. The loop will eventually exit and a true
> lockup caused by a stuck IORDY line will hang forever in an inb/outb so
> neither softlockup or even nmi lockup would save you.
> 

How about something like the patch below?

The  if (!(timeout % 128))  bit is a guess that since 
touch_softlockup_watchdog() is a per_cpu thing it will be cheaper to do the
modulo calculation than calling the function every time through the loop,
especially as the nr of CPU's go up. But it's purely a guess, so I may very 
well be wrong - also, 128 is an arbitrarily chosen value, it's just a nice 
number that'll give us <10 function calls pr second.

<disclaimer>patch is completely un-tested</disclaimer>


From: Jesper Juhl <jesper.juhl@gmail.com>
Subject: touch softlockup watchdog in ide_wait_not_busy

Make sure we touch the softlockup watchdog in 
ide_wait_not_busy() since it may cause the watchdog to trigger, but
there's really no point in that since the loop will eventually return, and
triggering the watchdog won't do us any good anyway.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
---

 drivers/ide/ide-iops.c |    8 ++++++++
 1 files changed, 8 insertions(+)

--- linux-2.6.15-rc2-orig/drivers/ide/ide-iops.c	2005-11-20 22:25:24.000000000 +0100
+++ linux-2.6.15-rc2/drivers/ide/ide-iops.c	2005-11-23 19:46:11.000000000 +0100
@@ -24,6 +24,7 @@
 #include <linux/hdreg.h>
 #include <linux/ide.h>
 #include <linux/bitops.h>
+#include <linux/sched.h>
 
 #include <asm/byteorder.h>
 #include <asm/irq.h>
@@ -1243,6 +1244,13 @@ int ide_wait_not_busy(ide_hwif_t *hwif, 
 		 */
 		if (stat == 0xff)
 			return -ENODEV;
+
+		/* 
+		 * We risk triggering the soft lockup detector, but we don't
+		 * want that, so better poke it a bit once in a while.
+		 */
+		if (!(timeout % 128))
+			touch_softlockup_watchdog();
 	}
 	return -EBUSY;
 }



  reply	other threads:[~2005-11-23 19:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-20 20:46 [BUG] 2.6.15-rc1, soft lockup detected while probing IDE devices on AMD7441 Alexander V. Inyukhin
2005-11-20 23:07 ` Alan Cox
2005-11-21  1:29   ` Andrew Morton
2005-11-21 20:38     ` Alan Cox
2005-11-23 19:17       ` Jesper Juhl [this message]
2005-11-30 10:59         ` Alexander V. Inyukhin
2005-11-30 12:00           ` Jesper Juhl

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=200511232017.52788.jesper.juhl@gmail.com \
    --to=jesper.juhl@gmail.com \
    --cc=akpm@osdl.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shurick@sectorb.msk.ru \
    /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