From owner-freebsd-scsi@FreeBSD.ORG Tue Aug 15 02:40:56 2006 Return-Path: X-Original-To: freebsd-scsi@freebsd.org Delivered-To: freebsd-scsi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 99D0D16A4DA for ; Tue, 15 Aug 2006 02:40:56 +0000 (UTC) (envelope-from jrhett@mail.meer.net) Received: from outbound0.sv.meer.net (outbound0.mx.meer.net [209.157.153.23]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4CF3043D49 for ; Tue, 15 Aug 2006 02:40:56 +0000 (GMT) (envelope-from jrhett@mail.meer.net) Received: from mail.meer.net (mail.meer.net [209.157.152.14]) by outbound0.sv.meer.net (8.12.10/8.12.6) with ESMTP id k7F2epip056684; Mon, 14 Aug 2006 19:40:53 -0700 (PDT) (envelope-from jrhett@mail.meer.net) Received: from mail.meer.net (mail.meer.net [209.157.152.14]) by mail.meer.net (8.13.3/8.13.3/meer) with ESMTP id k7F2enea034993; Mon, 14 Aug 2006 19:40:49 -0700 (PDT) (envelope-from jrhett@mail.meer.net) Received: (from jrhett@localhost) by mail.meer.net (8.13.3/8.13.3) id k7F2enBE034992; Mon, 14 Aug 2006 19:40:49 -0700 (PDT) (envelope-from jrhett) Date: Mon, 14 Aug 2006 19:40:49 -0700 From: Jo Rhett To: Scott Long Message-ID: <20060815024049.GA34903@svcolo.com> References: <27BE7ACB-BCF9-40A5-96F4-CE90A297CE71@svcolo.com> <44DD4A97.2050203@samsco.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <44DD4A97.2050203@samsco.org> Organization: svcolo.com User-Agent: Mutt/1.5.9i Cc: freebsd-scsi@freebsd.org Subject: Re: myl driver failing during server shutdown X-BeenThere: freebsd-scsi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SCSI subsystem List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Aug 2006 02:40:56 -0000 Thanks for the quick reply. Unfortunately I still haven't had time to test it. I'm doing a build now, but I need to leave tonight so I'll try and test it tomorrow AM. On Fri, Aug 11, 2006 at 09:27:19PM -0600, Scott Long wrote: > Jo Rhett wrote: > >So I had thought that my motherboard didn't honor the acpi reset or > >power down command. It turns out that it does just fine -- but the > >shutdown is failing/hanging. Attaching a serial console to it, I see > >this: > > > >Waiting (max 60 seconds) for system process `syncer' to stop... > >Syncing disks, vnodes remaining...3 0 2 0 0 done > >All buffers synced. > >Uptime: 6d18h12m6s > >(da0:mly0:1:0:0): Synchronize cache failed, status == 0xb, scsi status > >== 0x0 > >mly0: flushing cache...kernel trap 12 with interrupts disabled > > > > > >Fatal trap 12: page fault while in kernel mode > >fault virtual address = 0x0 > >fault code = supervisor read, page not present > >instruction pointer = 0x20:0x0 > >stack pointer = 0x28:0xe25c1ac0 > >frame pointer = 0x28:0x0 > >code segment = base 0x0, limit 0xfffff, type 0x1b > > = DPL 0, pres 1, def32 1, gran 1 > >processor eflags = resume, IOPL = 0 > >current process = 1 (init) > >trap number = 12 > >panic: page fault > >Uptime: 6d19h12m38s > >(da0:mly0:1:0:0): Synchronize cache failed, status == 0xb, scsi status > >== 0x0 > >Dumping 991 MB (2 chunks) > >Aborting dump due to I/O error. > >status == 0xb, scsi status == 0x0 > > > >** DUMP FAILED (ERROR 5) ** > > > >This is 100% reproducable. Anyone have any ideas where to start on > >this problem? What does this error mean? > > > >Note: if you want to debug this, I can provide root access. It's just > >a personal box :-) > > > > Give this (untested) patch a try. If that doesn't work, it's going to > need a lot more digging, and I unfortunately don't have the time for > that right now. > > Scott > > Index: mly.c > =================================================================== > RCS file: /usr/ncvs/src/sys/dev/mly/mly.c,v > retrieving revision 1.39 > diff -u -r1.39 mly.c > --- mly.c 8 Aug 2005 12:23:26 -0000 1.39 > +++ mly.c 10 Aug 2006 11:57:54 -0000 > @@ -1128,9 +1128,12 @@ > mc->mc_data = *data; > mc->mc_flags |= MLY_CMD_DATAOUT; > } > - mc->mc_length = datasize; > - mc->mc_packet->generic.data_size = datasize; > + } else if (datasize != 0) { > + error = EINVAL; > + goto out; > } > + mc->mc_length = datasize; > + mc->mc_packet->generic.data_size = datasize; > > /* run the command */ > if ((error = mly_immediate_command(mc))) -- Jo Rhett senior geek SVcolo : Silicon Valley Colocation