Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Aug 2000 11:51:58 +0100
From:      Brian Somers <brian@Awfulhak.org>
To:        Josef Karthauser <joe@pavilion.net>
Cc:        Brian Somers <brian@Awfulhak.org>, freebsd-bugs@FreeBSD.ORG, sheldonh@FreeBSD.ORG, brian@Awfulhak.org
Subject:   Re: kern/20375: APM doesn't work properly! Suspend/resume/suspend/hang 
Message-ID:  <200008111051.LAA00847@hak.lan.Awfulhak.org>
In-Reply-To: Message from Josef Karthauser <joe@pavilion.net>  of "Fri, 11 Aug 2000 01:21:35 BST." <20000811012135.A353@pavilion.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
What happens if you change the tsleep to DELAY() ?  It should sort 
out the panic, but do you still die in the second suspend ?

The bit I'm *really* interested in is why this hasn't happened for 
you 'till now ?  It's been happening to me since FreeBSDCon (well, 
for the entire life of this laptop) !!!

Index: ata-all.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-all.c,v
retrieving revision 1.62
diff -u -r1.62 ata-all.c
--- ata-all.c	2000/08/08 14:57:36	1.62
+++ ata-all.c	2000/08/11 10:49:54
@@ -1281,10 +1281,7 @@
 	if (*mask == 0x03)      /* wait for both master & slave */
 	    if (!(status0 & ATA_S_BUSY) && !(status1 & ATA_S_BUSY))
 		break;
-	if (ata_delayed_attach)
-	    DELAY(100);
-	else
-	    tsleep(&ata_delayed_attach, PRIBIO, "atarst", 1);
+	DELAY(100);
     }	
     DELAY(1);
     outb(scp->altioaddr, ATA_A_4BIT);


> On Thu, Aug 10, 2000 at 12:22:15PM +0100, Josef Karthauser wrote:
> > On Thu, Aug 10, 2000 at 12:12:17PM +0100, Brian Somers wrote:
> > > 
> > > With the dodgy call to tsleep (passing a NULL as the first arg) I was 
> > > getting a panic in the KASSERT in tsleep(), but once that was fixed 
> > > I'm back where I can suspend, resume then lock up when I try to suspend 
> > > again.
> > > 
> > > It'd be worth looking at a crash trace if you can get one.
> > 
> > Mine was working once _until_ the tsleep fix!  I'll recompile the
> > kernel again afresh and check again.  My guess is that this tsleep
> > is independant to my original report.
> 
> To repeat - even though it looks like the KASSERT in tsleep fixed the
> ata code for you, it's still broken for me on the head branch.  Upon
> a resume the debugger kicks in at tsleep within atareset.
>  
> > My original problem is the same as what you report above.  I've
> > tried with a cutdown kernel, to remove the possibility that it's
> > pcm, etc, but it does appear to be more fundamental than that.  I
> > don't get a crash, just a hang, so no coredump or back trace is
> > available. :(
> 
> I've gone back to 1/Aug/2000 for the ata code to get around that local
> problem which isn't necessarily the direct cause of the suspend/resume
> hang that you mention, and which appears to be the same as the one that
> I opened this PR under.
> 
> My suspicion is that something isn't resuming properly and when asked
> to suspend a second time it's hanging the system.  I wish that I could
> find our where the hang is occuring.
> 
> Joe
> 

-- 
Brian <brian@Awfulhak.org>                        <brian@[uk.]FreeBSD.org>
      <http://www.Awfulhak.org>;                   <brian@[uk.]OpenBSD.org>
Don't _EVER_ lose your sense of humour !




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200008111051.LAA00847>