From owner-freebsd-multimedia Fri Sep 13 11:20:34 2002 Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 08E9837B407; Fri, 13 Sep 2002 11:20:10 -0700 (PDT) Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9C60543E81; Fri, 13 Sep 2002 11:20:09 -0700 (PDT) (envelope-from julian@elischer.org) Received: from InterJet.elischer.org ([12.232.206.8]) by rwcrmhc52.attbi.com (InterMail vM.4.01.03.27 201-229-121-127-20010626) with ESMTP id <20020913182009.XLGP26805.rwcrmhc52.attbi.com@InterJet.elischer.org>; Fri, 13 Sep 2002 18:20:09 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id LAA79791; Fri, 13 Sep 2002 11:18:55 -0700 (PDT) Date: Fri, 13 Sep 2002 11:18:54 -0700 (PDT) From: Julian Elischer To: Rahul Siddharthan Cc: stable@freebsd.org, multimedia@freebsd.org Subject: Re: USB audio kernel panics In-Reply-To: <20020913121704.GA286@papagena.rockefeller.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Fri, 13 Sep 2002, Rahul Siddharthan wrote: > Julian Elischer said on Sep 12, 2002 at 20:36:53: > > > I notice that the USB audio driver has been imported into -STABLE > > > recently. I've been using this driver for a few months, and get > > > frequent easily-reproducible kernel panics, which unfortunately I don't > > > have the ability to fix -- but I really don't think the driver is ready > > > for -stable or for 4.7-release. > > > > > > > [...] > > can you do a 'list' here? > > as well as "info locals" and > > print anything that looks suspicious? > > I don't know what looks suspicious, but here's the whole lot below -- > first for the panic I quoted (pulling out the USB cord while busy), > then for a different panic (starting the KDE artsd daemon). > > Thanks, I'd definitely like to see this fixed (and if recording > capabilities are added too, I can finally quit rebooting into linux) > > Rahul > > ------------------ > > First, for what I sent earlier: pulling out the USB cord > > ------------------ > > #16 0xc0235813 in uhci_device_isoc_start (xfer=0xc100d300) > at /usr/src/sys/dev/usb/uhci.c:2097 > 2097 LIST_INSERT_HEAD(&sc->sc_intrhead, ii, list); > (kgdb) list > 2092 if (!ii->isdone) { > 2093 printf("uhci_device_isoc_start: not done, ii=%p\n", ii); > 2094 } > 2095 ii->isdone = 0; > 2096 #endif > 2097 LIST_INSERT_HEAD(&sc->sc_intrhead, ii, list); > 2098 > 2099 splx(s); > 2100 > 2101 return (USBD_IN_PROGRESS); > (kgdb) info locals > upipe = (struct uhci_pipe *) 0x0 > sc = (uhci_softc_t *) 0xc0f9c200 > ii = (uhci_intr_info_t *) 0xc0fae8c0 > end = (uhci_soft_td_t *) 0x68c840 > s = 6867008 > i = 0 print sc->sc_intrhead and if there is something already on the list, print that. also print *ii > ----------------- > > Below, a panic generated by starting up KDE's artsd while the USB device > is plugged in securely. > > ----------------- > > #16 0xc029bb93 in trap (frame={tf_fs = 6815760, tf_es = -1056571376, > tf_ds = 16, tf_edi = 1, tf_esi = -1056113184, tf_ebp = -1070635404, > tf_isp = -1070635452, tf_ebx = -1056138112, tf_edx = 125511200, > tf_ecx = -846746112, tf_eax = 2, tf_trapno = 12, tf_err = 0, > tf_eip = -1071429335, tf_cs = 8, tf_eflags = 66050, > tf_esp = -1057941184, tf_ss = -1056113184}) > at /usr/src/sys/i386/i386/trap.c:466 > 466 (void) trap_pfault(&frame, FALSE, eva); > > (kgdb) up > #17 0xc0234929 in uhci_idone (ii=0xc10cfde0) > at /usr/src/sys/dev/usb/uhci.c:1129 > 1129 for (std = ii->stdstart; std != NULL; std = std->link.std) { > (kgdb) list > 1124 uhci_dump_tds(ii->stdstart); > 1125 #endif > 1126 > 1127 /* The transfer is done, compute actual length and status. */ > 1128 actlen = 0; > 1129 for (std = ii->stdstart; std != NULL; std = std->link.std) { > 1130 nstatus = LE(std->td.td_status); > 1131 if (nstatus & UHCI_TD_ACTIVE) > 1132 break; > 1133 > (kgdb) info locals If this really is where the error is.. is it possile something further in the loop clears std? I know nothing of this code.. I'm just showing you how to debug it... > xfer = 0x68c840 > upipe = (struct uhci_pipe *) 0x0 > std = (uhci_soft_td_t *) 0x0 > status = 1 > nstatus = 0 > actlen = 194 > > (kgdb) up julian To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message