From owner-freebsd-current@FreeBSD.ORG Tue Oct 21 14:38:04 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 212B416A4B3; Tue, 21 Oct 2003 14:38:04 -0700 (PDT) Received: from beppo.feral.com (beppo.feral.com [192.67.166.79]) by mx1.FreeBSD.org (Postfix) with ESMTP id B280843FA3; Tue, 21 Oct 2003 14:38:02 -0700 (PDT) (envelope-from mjacob@feral.com) Received: from win2k (float35.in0.lcl [172.16.166.35]) by beppo.feral.com (8.12.9p1/8.12.9) with ESMTP id h9LLbwSn004899; Tue, 21 Oct 2003 14:37:58 -0700 (PDT) (envelope-from mjacob@feral.com) From: "Matthew Jacob" To: "'Kris Kennaway'" Date: Tue, 21 Oct 2003 14:30:21 -0700 Organization: Feral Software Message-ID: <000801c3981a$8abc6540$23a610ac@win2k> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2627 In-Reply-To: <20031021160559.GA65882@rot13.obsecurity.org> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Importance: Normal cc: alpha@FreeBSD.org cc: current@FreeBSD.org Subject: RE: Sleeping on "isp_mboxwaiting" with the following non-sleepablelocks held: X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: mjacob@feral.com List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 21:38:04 -0000 So? How about some details and context? I thought was told that being able to use locks in HBAs is fine. I had them on for a while, and then had them off. I turned them on again over a month ago. I'm somewhat surprised to see that a problem shows up now. *I* do the right thing with locks, IMO. I hold them in my module when I enter and release them if/when I leave. Seeing a lock held by some random caller causing me to blow up to me seems to be a hole in the architecture, but I'd be the first to admit that I hardly am up to date on what the rules of the road are now so such an opinion is ill-informed. Comment out ISP_SMPLOCK in isp_freebsd.h. If the problem goes away, we'll make the change back again. -matt p.s.: you have *way* more issues here than locking- you've a bad disk. Anyway, isn't alpha desupported? -----Original Message----- From: Kris Kennaway [mailto:kris@obsecurity.org] Sent: Tuesday, October 21, 2003 9:06 AM To: mjacob@FreeBSD.org Cc: alpha@FreeBSD.org; current@FreeBSD.org Subject: Sleeping on "isp_mboxwaiting" with the following non-sleepablelocks held: This happened to me just now on alpha: (da0:isp0:0:0:0): Retrying Command (per Sense Data) (da0:isp0:0:0:0): READ(06). CDB: 8 5 f 30 10 0 (da0:isp0:0:0:0): CAM Status: SCSI Status Error (da0:isp0:0:0:0): SCSI Status: Check Condition (da0:isp0:0:0:0): MEDIUM ERROR info:50f30 asc:11,0 (da0:isp0:0:0:0): Unrecovered read error field replaceable unit: e4 actual retry count: 257 (da0:isp0:0:0:0): Retrying Command (per Sense Data) swap_pager: indefinite wait buffer: device: da0b, blkno: 331568, size: 8192 (da0:isp0:0:0:0): READ(06). CDB: 8 5 f 30 10 0 (da0:isp0:0:0:0): CAM Status: SCSI Status Error (da0:isp0:0:0:0): SCSI Status: Check Condition (da0:isp0:0:0:0): MEDIUM ERROR info:50f30 asc:11,0 (da0:isp0:0:0:0): Unrecovered read error field replaceable unit: e4 actual retry count: 257 (da0:isp0:0:0:0): Retries Exhausted swap_pager: I/O error - pagein failed; blkno 331568,size 8192, error 5 vm_fault: pager read error, pid 90537 (aspell) Sleeping on "isp_mboxwaiting" with the following non-sleepablelocks held: exclusive sleep mutex g_xdown r = 0 (0xfffffe0006bfdc78) locked @ /a/asami/portbuild/alpha/src-client/sys/geom/geom_io.c:345 witness_warn Stopped at Debugger+0x38: zapnot v0,#0xf,v0 db> trace Debugger() at Debugger+0x38 witness_warn() at witness_warn+0x284 msleep() at msleep+0xa8 isp_mbox_wait_complete() at isp_mbox_wait_complete+0x94 isp_mboxcmd() at isp_mboxcmd+0x258 isp_update_bus() at isp_update_bus+0x2f0 isp_update() at isp_update+0x54 isp_start() at isp_start+0x208 isp_action() at isp_action+0x1bc xpt_run_dev_sendq() at xpt_run_dev_sendq+0x23c xpt_action() at xpt_action+0x2a0 dastart() at dastart+0x220 xpt_run_dev_allocq() at xpt_run_dev_allocq+0xf0 xpt_schedule() at xpt_schedule+0xc0 dastrategy() at dastrategy+0x70 g_disk_start() at g_disk_start+0x1ec g_io_schedule_down() at g_io_schedule_down+0x234 g_down_procbody() at g_down_procbody+0x5c fork_exit() at fork_exit+0x100 exception_return() at exception_return --- root of call graph --- Kris