Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Aug 1999 16:01:56 +0930
From:      Greg Lehey <grog@lemis.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        Bernd Walter <ticso@cicely.de>, Mike Smith <mike@smith.net.au>, Parag Patel <parag@cgt.com>, freebsd-current@FreeBSD.ORG
Subject:   Re: 4.0-CURRENT SMP crash with vinum raid-5 and softupdates
Message-ID:  <19990830160155.G13904@freebie.lemis.com>
In-Reply-To: <199908300559.WAA09987@apollo.backplane.com>; from Matthew Dillon on Sun, Aug 29, 1999 at 10:59:22PM -0700
References:  <199908292224.PAA15435@dingo.cdrom.com> <199908292348.QAA07774@apollo.backplane.com> <19990830075311.A30271@cicely8.cicely.de> <199908300559.WAA09987@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, 29 August 1999 at 22:59:22 -0700, Matthew Dillon wrote:
>
>> (kgdb) target remote /dev/cuaa2
>> Remote debugging using /dev/cuaa2
>> 0x0 in ?? ()
>> (kgdb) bt
>> #0  0x0 in ?? ()
>> #1  0xc017228f in biodone (bp=0xc09ebd80) at ../../kern/vfs_bio.c:2580
>> #2  0xc0123db6 in dadone (periph=0xc0882c80, done_ccb=0xc09bd200) at ../../cam/scsi/scsi_da.c:1294
>> #3  0xc011fa7b in camisr (queue=0xc02726b4) at ../../cam/cam_xpt.c:6141
>> #4  0xc011f88d in swi_cambio () at ../../cam/cam_xpt.c:6048
>> #5  0xc020db30 in splz_swi ()
>> (kgdb) frame 1
>> #1  0xc017228f in biodone (bp=0xc09ebd80) at ../../kern/vfs_bio.c:2580
>> 2580	../../kern/vfs_bio.c: No such file or directory.
>> (kgdb) print bp
>> $1 = (struct buf *) 0xc09ebd80
>> (kgdb) print *bp
>> $2 = {
>>  b_hash = {
>>    le_next = 0x0,
>>    le_prev = 0x0
>>  },
>>  b_vnbufs = {
>> ...
>> (kgdb)
>
>     This is definitely a pbuf.

What's a pbuf?

>     Did you apply the patches Greg emailed?  They will panic the
>     machine earlier while it is still in the correct stack frame,
>     allowing Greg to track down where the I/O initiation came from.

Well, in fact they didn't do that.  The only one that I hit was in
biodone, which is effectively the same thing as the panic.  But they
did show that it wasn't like that when it left vinum.

> Index: kern/vfs_bio.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/kern/vfs_bio.c,v
> retrieving revision 1.227
> diff -w -u -r1.227 vfs_bio.c
> --- vfs_bio.c   1999/08/28 00:46:23     1.227
> +++ vfs_bio.c   1999/08/30 01:31:00
> @@ -2576,6 +2576,8 @@
>
>         /* call optional completion function if requested */
>         if (bp->b_flags & B_CALL) {
> +               if (bp->b_iodone == NULL)
> +                       Debugger ("biodone");
>                 bp->b_flags &= ~B_CALL;
>                 (*bp->b_iodone) (bp);
>                 splx(s);
> Index: dev/vinum/vinumrequest.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/vinum/vinumrequest.c,v
> retrieving revision 1.35
> diff -w -u -r1.35 vinumrequest.c
> --- vinumrequest.c      1999/08/28 00:42:42     1.35
> +++ vinumrequest.c      1999/08/30 01:26:58
> @@ -396,6 +390,9 @@
>                 if (debug & DEBUG_LASTREQS)
>                     logrq(loginfo_rqe, (union rqinfou) rqe, rq->bp);
>  #endif
> +               if ((rqe->b.b_flags & B_CALL)
> +                   && (rqe->b.b_iodone == NULL) )
> +                 Debugger ("launch_requests");
>                 /* fire off the request */
>                 BUF_STRATEGY(&rqe->b, 0);
>             }
>
> You could also enable some of Vinum's internal logging:
>
>   # vinum debug 324

Note that this should read 328.  324 will always land you in the
Debugger (a feature, not a bug :-).

Greg
--
See complete headers for address, home page and phone numbers
finger grog@lemis.com for PGP public key


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




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