From owner-freebsd-bugs Mon Dec 18 18:45:59 1995 Return-Path: owner-bugs Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id SAA09533 for bugs-outgoing; Mon, 18 Dec 1995 18:45:59 -0800 (PST) Received: from hda.com (hda.com [199.232.40.182]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id SAA09518 for ; Mon, 18 Dec 1995 18:45:51 -0800 (PST) Received: (from dufault@localhost) by hda.com (8.6.11/8.6.9) id VAA18815; Mon, 18 Dec 1995 21:48:59 -0500 From: Peter Dufault Message-Id: <199512190248.VAA18815@hda.com> Subject: Re: Problem with FreeBSD 2.1.0-RELEASE To: gibbs@freefall.freebsd.org (Justin T. Gibbs) Date: Mon, 18 Dec 1995 21:48:58 -0500 (EST) Cc: m.sapsed@bangor.ac.uk, hm@hcs.de, freebsd-bugs@freebsd.org In-Reply-To: <199512181948.LAA15318@freefall.freebsd.org> from "Justin T. Gibbs" at Dec 18, 95 11:48:36 am X-Mailer: ELM [version 2.4 PL24] Content-Type: text Sender: owner-bugs@freebsd.org Precedence: bulk > >This is probably your problem. I found this in cd.c: > > > >#define CDUNIT(DEV) ((minor(DEV)&0xF8) >> 3) /* 5 bit unit */ > > > >It should be: > > > >#define CDUNIT(DEV) ((minor(DEV) >> 11) | ((minor(DEV)&0xF8) >> 3)) > > > >This is probably a general problem in the SCSI code. > > Actually, this only becomes a factor with 32 cds. Hmmm. Can you > put ddb in your kernel and get a traceback from the panic? This is certainly the same problem that Hellmuth and others have been having with CD-ROM changers. Hellmuth sent me the changer so I want to find some time to track it down soon. I saved some mail from him that says it takes place here: > Fatal trap 12: page fault while in kernel mode > Fault virtual address = 0x60 > Fault code = supervisor read, page not present > Instruction pointer = 0x8:0xf01250ac > Code segment = base 0x0 limit 0xfffff type 0x1b > = DPL 0, pres 1, def 321, gran 1 > Processor eflags = interrupt enabled, resume, IOPL = 0 > Current process = 470 (iozone) > Interrupt mask = bio > Kernel: type 12 trap, code = 0 > Stopped at _incore+0x48: cmpl %esi, 0x48(%ebx) I believe this is here in kern/vfs_bio.c: > int s = splbio(); > > bh = BUFHASH(vp, blkno); > bp = bh->lh_first; > > /* Search hash chain */ > while (bp) { where we go indirect on that bp. -- Peter Dufault Real Time Machine Control and Simulation HD Associates, Inc. Voice: 508 433 6936 dufault@hda.com Fax: 508 433 5267