From owner-freebsd-current@FreeBSD.ORG Thu May 22 05:49:41 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 964C837B404; Thu, 22 May 2003 05:49:41 -0700 (PDT) Received: from pump2.york.ac.uk (pump2.york.ac.uk [144.32.128.12]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7698F43F93; Thu, 22 May 2003 05:49:40 -0700 (PDT) (envelope-from gavin@ury.york.ac.uk) Received: from ury.york.ac.uk (ury.york.ac.uk [144.32.108.81]) by pump2.york.ac.uk (8.12.9/8.12.9) with ESMTP id h4MCncR8028553; Thu, 22 May 2003 13:49:38 +0100 (BST) Received: from ury.york.ac.uk (localhost.york.ac.uk [127.0.0.1]) by ury.york.ac.uk (8.12.8p1/8.12.8) with ESMTP id h4MCncJF056739; Thu, 22 May 2003 13:49:38 +0100 (BST) (envelope-from gavin@ury.york.ac.uk) Received: from localhost (gavin@localhost)h4MCnc3W056736; Thu, 22 May 2003 13:49:38 +0100 (BST) Date: Thu, 22 May 2003 13:49:38 +0100 (BST) From: Gavin Atkinson To: current@freebsd.org Message-ID: <20030522123034.F54865-100000@ury.york.ac.uk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: gibbs@freebsd.org Subject: GEOM panic on boot when ahd cannot find disk X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 12:49:41 -0000 Hi, Freshly burned ISO of 5.1-BETA-20030522-JPSNAP booting off an IDE cd-rom on the single processor version of http://www.supermicro.com/PRODUCT/SUPERServer/SuperServer6012P-8.htm The system fails to detect the drive (a Fujitsu MAP3367NC) attached to an Adaptec AIC7902 controller, and GEOM panics over recursuing on a non-recursive lock. There seems to be three issues here to my untrained eye: - Firstly, why could the ahd driver not find the drive (Linux and Windows 2000 find it no problems), - secondly, why was GEOM called to create the disk when the detection had errored out, - and thirdly, why did GEOM panic? I will only have access to this machine for an hour or so (I was able to boot FreeBSD on it as a favour, and it's getting installed for it's real role as a Windows 2000 server later today) so I may not be able to try patches for a while, if at all. Hand transcribed, so forgive any errors... ahd0: ... aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI 33Mhz or 66Mhz, 512 SCBs ahd1: ... aic7902: Ultra320 Wide Channel B, SCSI Id=7, PCI 33Mhz or 66Mhz, 512 SCBs ... Waiting 15 seconds for SCSI devices to settle ses0 at ahd0 bus0 target 6 lun 0 ses0: Fixed Processor SCSI-2 device ses0: 3.300 MB/s transfers ses0: SAF-TE compliant device Copied 32 bytes of sense data offset 12: 0x70 0x0 0x5 0x0 0x0 0x0 0x0 0x28 0x0 0x0 0x0 0x0 0x25 0x0 0x0 0x0 0x0 0x0 0x0 0x25 0x0 0x1 0x7 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 (da0:ahd0:0:0:0): READ CAPACITY CDB: 25 0 0 0 0 0 0 0 0 0 (da0:ahd0:0:0:0): ILLEGAL REQUEST asc:25,0 (da0:ahd0:0:0:0): Logical unit not supported (da0:ahd0:0:0:0): fatal error, failed to attach device (da0:ahd0:0:0:0): lost device (da0:ahd0:0:0:0): removing device entry Lock GEOM topology not exclusively locked @ /usr/src/sys/geom/geom_disk.c:300 Lock GEOM topology not exclusively locked @ /usr/src/sys/geom/geom_subr.c:119 malloc() of "32" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 malloc() of "16" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 malloc() of "128" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 malloc() of "16" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 Lock GEOM topology not exclusively locked @ /usr/src/sys/geom/geom_subr.c:270 malloc() of "32" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 malloc() of "16" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 malloc() of "128" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 malloc() of "128" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 malloc() of "128" with the following non-sleepablelocks held: exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 recursed on non-recursive lock (sleep mutex) GEOM orphanage @ /usr/src/sys/geom/geom_event.c:262 first aquired @ /usr/src/sys/geom/geom_event.c:210 panic: recurse db> trace panic() witness_lock() _mtx_lock_flags() g_post_event_x() g_post_event() g_new_providerf() g_disk_create() g_cancel_event() disk_destroy() dacleanup() camperiphfree() cam_periph_release() cam_periph_unlock() dadone() camisr() ithread_loop() fork_exit() fork_trampoline() db> show locks exclusive sleep mutex GEOM orphanage r = 1 (0xc05ba640) locked @ /usr/src/sys/geom/geom_event.c:210 (giant is also locked) Gavin