Date: Thu, 31 Mar 2005 07:49:58 -0500 From: Mike Tancsa <mike@sentex.net> To: ticso@cicely.de Cc: freebsd-usb@freebsd.org Subject: panic: uhci_abort_xfer: not in process context (was Re: uplcom / ucom problems on RELENG_5) Message-ID: <6.2.1.2.0.20050331074641.04f72eb8@64.7.153.2> In-Reply-To: <6.2.1.2.0.20050330145628.053abc68@64.7.153.2> References: <6.2.1.2.0.20050329222822.04f7c500@64.7.153.2> <20050330104102.GK33677@cicely12.cicely.de> <6.2.1.2.0.20050330071753.055388b8@64.7.153.2> <20050330124923.GR33677@cicely12.cicely.de> <6.2.1.2.0.20050330085751.03594e08@64.7.153.2> <20050330141443.GA33677@cicely12.cicely.de> <6.2.1.2.0.20050330092200.047a7928@64.7.153.2> <20050330143836.GB33677@cicely12.cicely.de> <6.2.1.2.0.20050330094120.02fca188@64.7.153.2> <6.2.1.2.0.20050330103630.047abfa8@64.7.153.2> <6.2.1.2.0.20050330145628.053abc68@64.7.153.2>
next in thread | previous in thread | raw e-mail | index | archive | help
Unfortunately the box coredumped overnight
putc to a clist with no reserved cblocks
putc to a clist with no reserved cblocks
putc to a clist with no reserved cblocks
putc to a clist with no reserved cblocks
panic: uhci_abort_xfer: not in process context
Uptime: 6h55m12s
Dumping 254 MB
16 32 48 64 80 96 112 128 144 160 176 192 208 224 240
Dump complete
Automatic reboot in 15 seconds - press a key on the console to abort
Rebooting...
Console: serial port
[releng5-865]# kgdb kernel.debug /var/crash/vmcore.5
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so:
Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".
#0 doadump () at pcpu.h:159
159 __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) bt full
#0 doadump () at pcpu.h:159
No locals.
#1 0xc051fa5e in boot (howto=260) at ../../../kern/kern_shutdown.c:410
first_buf_printf = 1
#2 0xc051fcf4 in panic (fmt=0xc06fc4ee "uhci_abort_xfer: not in process
context") at ../../../kern/kern_shutdown.c:566
td = (struct thread *) 0xc1502000
bootopt = 260
newpanic = 0
ap = 0xc1502000 "\020\aPÁ éOÁ"
buf = "uhci_abort_xfer: not in process context", '\0' <repeats 216
times>
#3 0xc04c5c47 in uhci_abort_xfer (xfer=0xc183ed00,
status=USBD_NORMAL_COMPLETION) at ../../../dev/usb/uhci.c:1958
uxfer = (struct uhci_xfer *) 0xc183ed00
ii = (uhci_intr_info_t *) 0xc183ed6c
upipe = (struct uhci_pipe *) 0xc19c7e00
sc = (uhci_softc_t *) 0xc15b8000
std = (uhci_soft_td_t *) 0x0
#4 0xc04c5bc9 in uhci_device_bulk_abort (xfer=0xc183ed00) at
../../../dev/usb/uhci.c:1921
No locals.
#5 0xc04d2ebb in usbd_ar_pipe (pipe=0xc19c7e00) at
../../../dev/usb/usbdi.c:762
xfer = 0x0
#6 0xc04d2c1f in usbd_abort_pipe (pipe=0xc19c7e00) at
../../../dev/usb/usbdi.c:556
err = USBD_NORMAL_COMPLETION
#7 0xc04c3cf5 in ucomstopread (sc=0x0) at ../../../dev/usb/ucom.c:1160
No locals.
#8 0xc04c38ba in ucomstop (tp=0xc171c000, flag=1) at
../../../dev/usb/ucom.c:934
sc = (struct ucom_softc *) 0xc1754c00
#9 0xc054b393 in ttyflush (tp=0xc171c000, rw=1) at ../../../kern/tty.c:1420
No locals.
#10 0xc054974d in ttyinput (c=26, tp=0xc171c000) at ../../../kern/tty.c:445
iflag = 11010
lflag = 1483
cc = (cc_t *) 0xc171c0b4
"\004ÿÿ\177\027\025\022\b\003\034\032\031\021\023\026\017\001"
i = 0
err = 0
#11 0xc04c3be5 in ucomreadcb (xfer=0xc183ed00, p=0xc1754c00,
status=USBD_NORMAL_COMPLETION) at linedisc.h:122
sc = (struct ucom_softc *) 0xc1754c00
tp = (struct tty *) 0xc171c000
err = USBD_NORMAL_COMPLETION
cc = 69
cp = (
u_char *) 0xc175f099 "\032\033\034\035\036\037
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV\021
~~ÿ}#ÀBCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abc"
lostcc = 0
#12 0xc04d2ffc in usb_transfer_complete (xfer=0xc183ed00) at
../../../dev/usb/usbdi.c:851
pipe = 0xc19c7e00
dmap = (usb_dma_t *) 0xc183ed3c
---Type <return> to continue, or q <return> to quit---
sync = 0
erred = 0
repeat = 0
polling = 0
#13 0xc04c54af in uhci_idone (ii=0x0) at ../../../dev/usb/uhci.c:1500
xfer = 0xc183ed00
upipe = (struct uhci_pipe *) 0xc19c7e00
std = (uhci_soft_td_t *) 0x0
status = 0
nstatus = 0
actlen = 222
#14 0xc04c538c in uhci_check_intr (sc=0xc15b8000, ii=0xc183ed6c) at
../../../dev/usb/uhci.c:1375
std = (uhci_soft_td_t *) 0x0
lstd = (uhci_soft_td_t *) 0xc15e8f20
status = 0
#15 0xc04c52de in uhci_softintr (v=0xc15b8000) at ../../../dev/usb/uhci.c:1305
sc = (uhci_softc_t *) 0xc15b8000
ii = (uhci_intr_info_t *) 0x0
nextii = (uhci_intr_info_t *) 0xc199d26c
#16 0xc04d0499 in usb_schedsoftintr (bus=0x0) at ../../../dev/usb/usb.c:864
No locals.
#17 0xc04c52ab in uhci_intr1 (sc=0xc15b8000) at ../../../dev/usb/uhci.c:1275
status = 1
ack = 1
#18 0xc04c513c in uhci_intr (arg=0xc15b8000) at ../../../dev/usb/uhci.c:1190
sc = (uhci_softc_t *) 0x0
#19 0xc050c371 in ithread_loop (arg=0xc14f7580) at
../../../kern/kern_intr.c:547
ithd = (struct ithd *) 0xc14f7580
ih = (struct intrhand *) 0xc15df680
td = (struct thread *) 0xc1502000
p = (struct proc *) 0xc1500710
count = 0
warming = 0
warned = 0
#20 0xc050b604 in fork_exit (callout=0xc050c220 <ithread_loop>,
arg=0xc14f7580, frame=0xcbca3d48) at ../../../kern/kern_fork.c:790
p = (struct proc *) 0xc1500710
td = (struct thread *) 0x0
#21 0xc06a2afc in fork_trampoline () at ../../../i386/i386/exception.s:209
No locals.
(kgdb)
At 04:02 PM 30/03/2005, Mike Tancsa wrote:
>At 10:37 AM 30/03/2005, Mike Tancsa wrote:
>>At 09:54 AM 30/03/2005, Mike Tancsa wrote:
>>
>>>>So far I only know about reconnecting, which likely isn't an
>>>>acceptable workaround for you.
>>>
>>>Thanks, you mean reconnecting the USB device ? Sadly no, that wont work
>>>for us when the unit is 80km away :( Or is there a way to do this
>>>programtically?
>>
>>I wonder if "set choked" in ppp might be tuned a bit to avoid this
>>issue. Time to experiment a bit.
>
>So far so good. If I change add "set choked 10", I am not able to hang
>the usb port like I was before.
>
>The value is quite a change from the default 120 seconds, but still 10
>seconds to transmit (for my application anyways which is a modem backup if
>the DSL fails) is adequate. I am going to let it run 48hrs to see if it
>still stable. On one device, I am running just continuous pings, and I am
>kicking off the connection every 10 min from the terminal server. On
>another machine, I am running it with random bursts of data and kicking it
>off every 5min.
>
> ---Mike
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.2.1.2.0.20050331074641.04f72eb8>
