Hello everybody,
I have just had a panic on 6.2 amd64 box with ehci connected USB DDS4
tape drive while it was for the first time being accessed with Amanda. I
have previously successfully tested it with tar.
I have a kernel crash dump with the following information:
panic: trying to sleep while sleeping is prohibited
cpuid = 0
KDB: stack backtrace:
panic() at panic+0x250
sleepq_add() at sleepq_add+0x225
msleep() at msleep+0x132
bwait() at bwait+0x55
swap_pager_putpages() at swap_pager_putpages+0x45c
vm_pageout_flush() at vm_pageout_flush+0x13b
vm_contig_launder_page() at vm_contig_launder_page+0xdc
vm_page_alloc_contig() at vm_page_alloc_contig+0x321
contigmalloc() at contigmalloc+0x5f7
bus_dmamem_alloc() at bus_dmamem_alloc+0x80
usb_block_allocmem() at usb_block_allocmem+0x118
usb_allocmem() at usb_allocmem+0x13e
usbd_transfer() at usbd_transfer+0xf1
umass_setup_transfer() at umass_setup_transfer+0x3b
umass_bbb_state() at umass_bbb_state+0xc0
usb_transfer_complete() at usb_transfer_complete+0x217
uhci_softintr() at uhci_softintr+0x100
uhci_intr1() at uhci_intr1+0x152
ithread_loop() at ithread_loop+0x148
fork_exit() at fork_exit+0xbb
fork_trampoline() at fork_trampoline+0xe
bt full
#0 0xffffffff8027ca40 in shutdown_conf (unused=0x0)
at ../../../kern/kern_shutdown.c:138
No locals.
#1 0xffffffff8027d304 in boot (howto=-2004318071)
at ../../../kern/kern_shutdown.c:209
_ep = (struct eventhandler_entry *) 0x0
_el = (struct eventhandler_list *) 0xffffff007b84c800
first_buf_printf = 1
#2 0xffffffff8027cd9b in panic (
fmt=0xffffffff803dfa78 "trying to sleep while sleeping is
prohibited")
at ../../../kern/kern_shutdown.c:542
bootopt = 260
newpanic = 1
ap = {{gp_offset = 8, fp_offset = 48,
overflow_arg_area = 0xffffffffb197a650,
reg_save_area = 0xffffffffb197a570}}
buf = "trying to sleep while sleeping is prohibited",
'\0'
<repeats 211 times>
#3 0xffffffff8029f02a in sleepq_switch (wchan=0x0)
at ../../../kern/subr_sleepqueue.c:447
No locals.
#4 0xffffffff8028337c in msleep (ident=0xffffffff80560b40, mtx=0x0,
priority=68, wmesg=0xffffffff803ef69a "swwrt", timo=0)
at ../../../kern/kern_synch.c:133
p = (struct proc *) 0xffffffff9f826428
catch = 0
rval = -2141828960
flags = -2141828960
#5 0xffffffff802cd1d6 in vfs_unbusy_pages (bp=0xffffffff803ef69a)
at ../../../kern/vfs_bio.c:3227
i = 0
obj = 0x1
m = 0xffffffff9f826428
#6 0xffffffff8034b691 in swap_pager_copy
(srcobject=0xffffff007fd8a570,
dstobject=0x0, offset=18446742974451804800, destroysource=-1)
at ../../../vm/swap_pager.c:766
i = 18446744072394090256
#7 0xffffffff80361a70 in vm_pageout_object_deactivate_pages (
pmap=0xffffffffb197a810, first_object=0xffffff000f21ea80,
desired=-1315461200) at ../../../vm/vm_pageout.c:539
backing_object = 0xffffffff802cd1d6
object = 0x1
p = 0xffffffff802cd1d6
next = 0xffffffffb197a710
actcount = -1
rcount = 0
remove_mode = -1315461232
#8 0xffffffff80351338 in vm_page_release_contigl
(m=0xffffff000f21ea80,
count=18446742976342828400) at ../../../vm/vm_contig.c:353
No locals.
#9 0xffffffff803518b3 in contigmalloc (size=0, type=0xffffffff,
flags=-256,
low=32768, high=1048575, alignment=505970,
boundary=18446742976282112000)
at ../../../vm/vm_contig.c:579
ret = (void *) 0x7b872
pages = 0x1
npgs = 4503560972664832
#10 0xffffffff80352040 in contigmalloc (size=0,
type=0xffffffff80521d20,
flags=1, low=0, high=4294967295, alignment=0, boundary=0)
at ../../../vm/vm_contig.c:546
ret = (void *) 0x0
pages = 0xffffff0076a46860
npgs = 8
#11 0xffffffff80368f3d in alloc_bounce_pages (dmat=0x0,
numpages=1457574160)
at ../../../amd64/amd64/busdma_machdep.c:1061
---Type <return> to continue, or q <return> to quit---
bpage = (struct bounce_page *) 0x1
bz = (struct bounce_zone *) 0xffffff000978ed00
count = 1
#12 0xffffffff802379ff in usb_block_allocmem (tag=0xffffff0056e0d100,
size=0,
align=32768, dmap=0xffffff0076a46860)
at ../../../dev/usb/usb_mem.c:187
p = (usb_dma_block_t *) 0x0
#13 0xffffffff80237bba in usb_allocmem (bus=0x0, size=32768, align=0,
p=0xffffff0076a46860) at ../../../dev/usb/usb_mem.c:248
tag = 0x0
err = USBD_NORMAL_COMPLETION
f = (struct usb_frag_dma *) 0x0
b = (usb_dma_block_t *) 0xffffffffb197aaa0
i = 0
#14 0xffffffff80239c5a in usbd_transfer (xfer=0xffffff0076a46800)
at ../../../dev/usb/usbdi.c:311
bus = (struct usbd_bus *) 0x0
pipe = 0xffffff00132bb500
err = 1540196352
size = 32768
#15 0xffffffff80233fa9 in umass_setup_transfer (sc=0x0, pipe=0x0,
buffer=0x0,
buflen=0, flags=0, xfer=0xffffff0076a46800)
at ../../../dev/usb/umass.c:1252
err = USBD_NORMAL_COMPLETION
#16 0xffffffff802344c0 in umass_bbb_state (xfer=0x0,
priv=0xffffff005bcd8800,
err=USBD_NORMAL_COMPLETION) at ../../../dev/usb/umass.c:1626
Residue = 0
next_xfer = 0x0
#17 0xffffffff8023a50f in usb_transfer_complete
(xfer=0xffffff007b962000)
at ../../../dev/usb/usbdi.c:863
pipe = 0xffffff005994bb00
dmap = (usb_dma_t *) 0xffffffff80517ea0
sync = 0
erred = 0
repeat = 0
polling = 0
#18 0xffffffff8022fdb0 in uhci_softintr (v=0x0)
at ../../../dev/usb/uhci.c:1374
sc = (uhci_softc_t *) 0xffffffff866ad000
ii = (uhci_intr_info_t *) 0x0
nextii = (uhci_intr_info_t *) 0x0
#19 0xffffffff8022faab in uhci_intr1 (sc=0xffffffff866ad000)
at ../../../dev/usb/uhci.c:1274
status = 1
ack = 1
#20 0xffffffff80267269 in ithread_loop (arg=0xffffff007b9de540)
at ../../../kern/kern_intr.c:682
ie = (struct intr_event *) 0xffffff0000029800
__func__ = "?c&\200?????c&\200?"
#21 0xffffffff8026606b in fork_exit (
callout=0xffffffff80267121 <ithread_loop>, arg=0xffffff007b9de540,
frame=0xffffffffb197ac50) at ../../../kern/kern_fork.c:821
p = (struct proc *) 0xffffff007b6c5a08
#22 0xffffffff8036e77e in Xapic_isr3 () at apic_vector.S:134
I can probably provide some more information, possibly even trying to
reproduce it on similar system (this one is in production).
Thank you
Michal