Subject: Re: pool problems, TAILQ, and more...
To: None <bgrayson@netbsd.org>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: tech-kern
Date: 04/05/2000 20:55:26
On Tue, Apr 04, 2000 at 10:29:11PM -0500, Brian C. Grayson wrote:
> Sorry -- I've added some debugging stuff, so line numbers won't
> match up. So here's what I have:
>
> $NetBSD: wd.c,v 1.202 2000/02/07 20:16:55 thorpej Exp $
>
> 629 disk_unbusy(&wd->sc_dk, (bp->b_bcount - bp->b_resid));
> 630 #if NRND > 0
> 631 rnd_add_uint32(&wd->rnd_source, bp->b_blkno);
> 632 #endif
> 633 CHECKPOOL();
> 634 biodone(bp);
> 635 CHECKPOOL();
> 636 wd->openings++;
> 637 wdstart(wd);
> 638 CHECKPOOL();
> 639 }
> 640
> 641 void
> 642 wdrestart(v)
> 643 void *v;
> 644 {
So it gets a trap when calling biodone() ?? This doesn't make sense !
Maybe it gets a trap inside biodone() but the stack frame is corruped ?
This would mean that bp is corrupted.
>
> CHECKPOOL() expands to a call to
> checkpool(__FILE__,__LINE__), which verifies that the
> last-freed item hasn't been modified.
Only the last one ? Maybe it's an older one which gets touched ?
--
Manuel Bouyer <bouyer@antioche.eu.org>
--