From owner-freebsd-current Fri Dec 13 12:10:28 2002 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 6191437B401 for ; Fri, 13 Dec 2002 12:10:27 -0800 (PST) Received: from rootlabs.com (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with SMTP id 0522043EB2 for ; Fri, 13 Dec 2002 12:10:27 -0800 (PST) (envelope-from nate@rootlabs.com) Received: (qmail 36991 invoked by uid 1000); 13 Dec 2002 20:10:27 -0000 Date: Fri, 13 Dec 2002 12:10:27 -0800 (PST) From: Nate Lawson To: Lamont Granquist Cc: "Kenneth D. Merry" , freebsd-current@FreeBSD.ORG Subject: Re: ioctl(CAMGETPASSTHRU) hung X11/cda process In-Reply-To: <20021212232216.U6076-100000@coredump.scriptkiddie.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Thu, 12 Dec 2002, Lamont Granquist wrote: > (kgdb) frame 2 > #2 0xc0140ffc in cam_periph_getccb (periph=0xc41fc080, priority=1) > at /usr/src/sys/cam/cam_periph.c:748 > 748 /usr/src/sys/cam/cam_periph.c: No such file or directory. > in /usr/src/sys/cam/cam_periph.c > (kgdb) print *periph > $11 = {pinfo = {priority = 1, generation = 6, index = 1}, > periph_start = 0xc0157220 , > periph_oninval = 0xc0156d70 , > periph_dtor = 0xc0156e00 , periph_name = 0xc049b503 "pass", > path = 0xc406dcc0, softc = 0xc41e6000, unit_number = 1, > type = CAM_PERIPH_BIO, flags = 0, immediate_priority = 1, refcount = 1, > ccb_list = {slh_first = 0x0}, periph_links = {sle_next = 0x0}, > unit_links = { > tqe_next = 0x0, tqe_prev = 0xc41cdb40}, deferred_callback = 0, > deferred_ac = 0} > (kgdb) Ok, this shows that the ccb_list is empty and this is the pass1 device. The question is "why is the wakeup() never getting called?" It would help if you did this immediately before running cda and reported the dmesg: camcontrol debug -S -T pass1 Also, add this patch to augment debugging output: --- /sys/cam/cam_xpt.c 23 Sep 2002 04:55:32 -0000 1.128 +++ /sys/cam/cam_xpt.c 13 Dec 2002 19:49:48 -0000 @@ -3789,6 +3789,7 @@ * device queue otherwise we may never get run * again. */ + printf("xpt_get_ccb failed, queue hung!\n"); break; } -Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message