[Bug 226436] panic: spin lock held too long
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Mar 7 22:05:19 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226436
Bug ID: 226436
Summary: panic: spin lock held too long
Product: Base System
Version: CURRENT
Hardware: amd64
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: freebsd-bugs at FreeBSD.org
Reporter: vidwer+fbsdbugs at gmail.com
Build: 12.0-CURRENT r330622
hardware: amd64
Unread portion of the kernel message buffer:
spin lock 0xffffffff81e07ca0 (smp rendezvous) held by 0xfffff80022aca000 (tid
100432) too long
timeout stopping cpus
panic: spin lock held too long
cpuid = 2
time = 1520449386
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe004b88b1d0
vpanic() at vpanic+0x18d/frame 0xfffffe004b88b230
panic() at panic+0x43/frame 0xfffffe004b88b290
_mtx_lock_indefinite_check() at _mtx_lock_indefinite_check+0x8c/frame
0xfffffe004b88b2b0
_mtx_lock_spin_cookie() at _mtx_lock_spin_cookie+0xd5/frame 0xfffffe004b88b320
__mtx_lock_spin_flags() at __mtx_lock_spin_flags+0xd8/frame 0xfffffe004b88b360
smp_targeted_tlb_shootdown() at smp_targeted_tlb_shootdown+0xd8/frame
0xfffffe004b88b3e0
smp_masked_invlpg_range() at smp_masked_invlpg_range+0x42/frame
0xfffffe004b88b410
pmap_invalidate_range() at pmap_invalidate_range+0x291/frame 0xfffffe004b88b470
vunmapbuf() at vunmapbuf+0x2e/frame 0xfffffe004b88b490
cam_periph_unmapmem() at cam_periph_unmapmem+0x17b/frame 0xfffffe004b88b4d0
passsendccb() at passsendccb+0x179/frame 0xfffffe004b88b530
passdoioctl() at passdoioctl+0xe7/frame 0xfffffe004b88b5e0
passioctl() at passioctl+0x22/frame 0xfffffe004b88b620
devfs_ioctl() at devfs_ioctl+0xcb/frame 0xfffffe004b88b670
VOP_IOCTL_APV() at VOP_IOCTL_APV+0xd9/frame 0xfffffe004b88b6a0
vn_ioctl() at vn_ioctl+0x124/frame 0xfffffe004b88b7b0
devfs_ioctl_f() at devfs_ioctl_f+0x1f/frame 0xfffffe004b88b7d0
kern_ioctl() at kern_ioctl+0x2b9/frame 0xfffffe004b88b830
sys_ioctl() at sys_ioctl+0x15c/frame 0xfffffe004b88b900
amd64_syscall() at amd64_syscall+0x79b/frame 0xfffffe004b88ba30
fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe004b88ba30
--- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x800a06dfa, rsp =
0x7fffffffa1d8, rbp = 0x7fffffffa6e0 ---
KDB: enter: panic
__curthread () at ./machine/pcpu.h:230
230 __asm("movq %%gs:%1,%0" : "=r" (td)
(kgdb)
#7 0xffffffff80f8c868 in trap (frame=0xfffffe004b88b100) at
/usr/src/sys/amd64/amd64/trap.c:547
547 if (kdb_trap(type, dr6, frame))
(kgdb)
#8 <signal handler called>
(kgdb)
#9 kdb_enter (why=0xffffffff811fb341 "panic", msg=<optimized out>) at
/usr/src/sys/kern/subr_kdb.c:479
479 kdb_why = KDB_WHY_UNSET;
(kgdb)
#10 0xffffffff80ad3e4a in vpanic (fmt=<optimized out>, ap=0xfffffe004b88b270)
at /usr/src/sys/kern/kern_shutdown.c:801
801 kdb_enter(KDB_WHY_PANIC, "panic");
(kgdb)
#11 0xffffffff80ad3ed3 in panic (fmt=0xffffffff81be33f8 <cnputs_mtx>
"-N\034\201\377\377\377\377") at /usr/src/sys/kern/kern_shutdown.c:739
739 vpanic(fmt, ap);
(kgdb)
#12 0xffffffff80ab3e4c in _mtx_lock_indefinite_check (m=0xffffffff81e07ca0
<smp_ipi_mtx>, ldap=<optimized out>) at /usr/src/sys/kern/kern_mutex.c:1227
1227 panic("spin lock held too long");
(kgdb)
#13 0xffffffff80ab3775 in _mtx_lock_spin_cookie (c=0xffffffff81e07cb8
<smp_ipi_mtx+24>, v=18446735278198267904, opts=<optimized out>, file=<optimized
out>, line=<optimized out>) at /usr/src/sys/kern/kern_mutex.c:752
752 _mtx_lock_indefinite_check(m, &lda);
(kgdb)
#14 0xffffffff80ab3628 in __mtx_lock_spin_flags (c=0xffffffff81e07cb8
<smp_ipi_mtx+24>, opts=0, file=0xffffffff8112f150
"/usr/src/sys/x86/x86/mp_x86.c", line=1535) at
/usr/src/sys/kern/kern_mutex.c:320
320 _mtx_lock_spin(m, v, opts, file, line);
(kgdb)
#15 0xffffffff810f8de8 in smp_targeted_tlb_shootdown (mask=..., vector=246,
pmap=0xffffffff81e5d4f0 <kernel_pmap_store>, addr1=<optimized out>,
addr2=18446741875586338816) at /usr/src/sys/x86/x86/mp_x86.c:1535
1535 mtx_lock_spin(&smp_ipi_mtx);
(kgdb)
#16 0xffffffff810f9172 in smp_masked_invlpg_range (mask=..., addr1=<optimized
out>, addr2=18, pmap=<optimized out>) at /usr/src/sys/x86/x86/mp_x86.c:1594
1594 smp_targeted_tlb_shootdown(mask, IPI_INVLRNG, pmap,
(kgdb)
#17 0xffffffff80f770e1 in pmap_invalidate_range (pmap=0xffffffff81e5d4f0
<kernel_pmap_store>, sva=18446741875586334720, eva=18446741875586338816) at
/usr/src/sys/amd64/amd64/pmap.c:1771
1771 smp_masked_invlpg_range(*mask, sva, eva, pmap);
(kgdb)
#18 0xffffffff80b8664e in vunmapbuf (bp=0xfffffe0000e33cc0) at
/usr/src/sys/kern/vfs_bio.c:4781
4781 pmap_qremove(trunc_page((vm_offset_t)bp->b_data),
npages);
(kgdb)
#19 0xffffffff803362eb in cam_periph_unmapmem (ccb=<optimized out>,
mapinfo=0xfffffe004b88b4e0) at /usr/src/sys/cam/cam_periph.c:1046
1046 vunmapbuf(mapinfo->bp[i]);
(kgdb)
#20 0xffffffff8036fdd9 in passsendccb (periph=0xfffff8000363c900,
ccb=0xfffff8001c6b2000, inccb=0xfffff8001e97d800) at
/usr/src/sys/cam/scsi/scsi_pass.c:2255
2255 cam_periph_unmapmem(ccb, &mapinfo);
(kgdb)
#21 0xffffffff8036ea77 in passdoioctl (dev=<optimized out>, cmd=<optimized
out>, addr=0xfffff8001e97d800 "", flag=<optimized out>, td=<optimized out>) at
/usr/src/sys/cam/scsi/scsi_pass.c:1847
1847 error = passsendccb(periph, ccb, inccb);
(kgdb)
#22 0xffffffff8036e5c2 in passioctl (dev=0xfffff800037d4000, cmd=3303020802,
addr=0xfffff8001e97d800 "", flag=3, td=0xfffff80022ac9000) at
/usr/src/sys/cam/scsi/scsi_pass.c:1766
1766 if ((error = passdoioctl(dev, cmd, addr, flag, td)) == ENOTTY)
{
(kgdb)
#23 0xffffffff8099e5eb in devfs_ioctl (ap=0xfffffe004b88b6b8) at
/usr/src/sys/fs/devfs/devfs_vnops.c:807
807 error = dsw->d_ioctl(dev, com, ap->a_data, ap->a_fflag, td);
(kgdb)
#24 0xffffffff81102dc9 in VOP_IOCTL_APV (vop=<optimized out>,
a=0xfffffe004b88b6b8) at vnode_if.c:1067
1067 rc = vop->vop_ioctl(a);
(kgdb)
#25 0xffffffff80bb3e74 in VOP_IOCTL (vp=<optimized out>, command=<optimized
out>, data=<optimized out>, fflag=18, cred=<optimized out>, td=<optimized out>)
at ./vnode_if.h:448
448 return (VOP_IOCTL_APV(vp->v_op, &a));
(kgdb)
#26 vn_ioctl (fp=0xfffff800224122d0, com=<optimized out>,
data=0xfffff8001e97d800, active_cred=0xfffff8001e7fa000, td=0x278) at
/usr/src/sys/kern/vfs_vnops.c:1507
1507 return (VOP_IOCTL(vp, com, data, fp->f_flag,
(kgdb)
#27 0xffffffff8099ec8f in devfs_ioctl_f (fp=0xffffffff81be33f8 <cnputs_mtx>,
com=128, data=0xfffffe004b88b0c0, cred=0x80, td=0xfffff80022ac9000) at
/usr/src/sys/fs/devfs/devfs_vnops.c:765
765 error = vnops.fo_ioctl(fp, com, data, cred, td);
(kgdb)
#28 0xffffffff80b3f129 in fo_ioctl (fp=<optimized out>, com=<optimized out>,
active_cred=0x80, td=<optimized out>, data=<optimized out>) at
/usr/src/sys/sys/file.h:325
325 return ((*fp->f_ops->fo_ioctl)(fp, com, data, active_cred,
td));
(kgdb)
#29 kern_ioctl (td=0xfffff80022ac9000, fd=<optimized out>, com=<optimized out>,
data=0xfffffe004b88b0c0 "") at /usr/src/sys/kern/sys_generic.c:838
838 error = fo_ioctl(fp, com, data, td->td_ucred, td);
(kgdb)
#30 0xffffffff80b3edfc in sys_ioctl (td=0xfffff80022ac9000,
uap=0xfffff80022ac93b8) at /usr/src/sys/kern/sys_generic.c:747
747 error = kern_ioctl(td, uap->fd, com, data);
(kgdb)
#31 0xffffffff80f8de2b in syscallenter (td=0xfffff80022ac9000) at
/usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:134
134 error = (sa->callp->sy_call)(td, sa->args);
(kgdb)
#32 amd64_syscall (td=0xfffff80022ac9000, traced=0) at
/usr/src/sys/amd64/amd64/trap.c:935
935 error = syscallenter(td);
(kgdb)
#33 0xffffffff80f68a0d in fast_syscall_common () at
/usr/src/sys/amd64/amd64/exception.S:480
480 call amd64_syscall
(kgdb)
#34 0x0000000000000003 in ?? ()
(kgdb)
#35 0x00000000c4e01902 in ?? ()
(kgdb)
#36 0x00007fffffffa1e0 in ?? ()
(kgdb)
#37 0x00007fffffffa1e0 in ?? ()
(kgdb)
#38 0x00000000000004e0 in ?? ()
(kgdb)
#39 0x0000000000000000 in ?? ()
(kgdb)
Initial frame selected; you cannot go up.
(kgdb) bt
#0 __curthread () at ./machine/pcpu.h:230
#1 doadump (textdump=0) at /usr/src/sys/kern/kern_shutdown.c:347
#2 0xffffffff8040a96b in db_dump (dummy=<optimized out>, dummy2=<unavailable>,
dummy3=<unavailable>, dummy4=<unavailable>) at
/usr/src/sys/ddb/db_command.c:574
#3 0xffffffff8040a739 in db_command (last_cmdp=<optimized out>,
cmd_table=<optimized out>, dopager=<optimized out>) at
/usr/src/sys/ddb/db_command.c:481
#4 0xffffffff8040a4b4 in db_command_loop () at
/usr/src/sys/ddb/db_command.c:534
#5 0xffffffff8040d6df in db_trap (type=<optimized out>, code=<optimized out>)
at /usr/src/sys/ddb/db_main.c:250
#6 0xffffffff80b19333 in kdb_trap (type=3, code=-61456, tf=<optimized out>) at
/usr/src/sys/kern/subr_kdb.c:697
#7 0xffffffff80f8c868 in trap (frame=0xfffffe004b88b100) at
/usr/src/sys/amd64/amd64/trap.c:547
#8 <signal handler called>
#9 kdb_enter (why=0xffffffff811fb341 "panic", msg=<optimized out>) at
/usr/src/sys/kern/subr_kdb.c:479
#10 0xffffffff80ad3e4a in vpanic (fmt=<optimized out>, ap=0xfffffe004b88b270)
at /usr/src/sys/kern/kern_shutdown.c:801
#11 0xffffffff80ad3ed3 in panic (fmt=0xffffffff81be33f8 <cnputs_mtx>
"-N\034\201\377\377\377\377") at /usr/src/sys/kern/kern_shutdown.c:739
#12 0xffffffff80ab3e4c in _mtx_lock_indefinite_check (m=0xffffffff81e07ca0
<smp_ipi_mtx>, ldap=<optimized out>) at /usr/src/sys/kern/kern_mutex.c:1227
#13 0xffffffff80ab3775 in _mtx_lock_spin_cookie (c=0xffffffff81e07cb8
<smp_ipi_mtx+24>, v=18446735278198267904, opts=<optimized out>, file=<optimized
out>, line=<optimized out>) at /usr/src/sys/kern/kern_mutex.c:752
#14 0xffffffff80ab3628 in __mtx_lock_spin_flags (c=0xffffffff81e07cb8
<smp_ipi_mtx+24>, opts=0, file=0xffffffff8112f150
"/usr/src/sys/x86/x86/mp_x86.c", line=1535) at
/usr/src/sys/kern/kern_mutex.c:320
#15 0xffffffff810f8de8 in smp_targeted_tlb_shootdown (mask=..., vector=246,
pmap=0xffffffff81e5d4f0 <kernel_pmap_store>, addr1=<optimized out>,
addr2=18446741875586338816) at /usr/src/sys/x86/x86/mp_x86.c:1535
#16 0xffffffff810f9172 in smp_masked_invlpg_range (mask=..., addr1=<optimized
out>, addr2=18, pmap=<optimized out>) at /usr/src/sys/x86/x86/mp_x86.c:1594
#17 0xffffffff80f770e1 in pmap_invalidate_range (pmap=0xffffffff81e5d4f0
<kernel_pmap_store>, sva=18446741875586334720, eva=18446741875586338816) at
/usr/src/sys/amd64/amd64/pmap.c:1771
#18 0xffffffff80b8664e in vunmapbuf (bp=0xfffffe0000e33cc0) at
/usr/src/sys/kern/vfs_bio.c:4781
#19 0xffffffff803362eb in cam_periph_unmapmem (ccb=<optimized out>,
mapinfo=0xfffffe004b88b4e0) at /usr/src/sys/cam/cam_periph.c:1046
#20 0xffffffff8036fdd9 in passsendccb (periph=0xfffff8000363c900,
ccb=0xfffff8001c6b2000, inccb=0xfffff8001e97d800) at
/usr/src/sys/cam/scsi/scsi_pass.c:2255
#21 0xffffffff8036ea77 in passdoioctl (dev=<optimized out>, cmd=<optimized
out>, addr=0xfffff8001e97d800 "", flag=<optimized out>, td=<optimized out>) at
/usr/src/sys/cam/scsi/scsi_pass.c:1847
#22 0xffffffff8036e5c2 in passioctl (dev=0xfffff800037d4000, cmd=3303020802,
addr=0xfffff8001e97d800 "", flag=3, td=0xfffff80022ac9000) at
/usr/src/sys/cam/scsi/scsi_pass.c:1766
#23 0xffffffff8099e5eb in devfs_ioctl (ap=0xfffffe004b88b6b8) at
/usr/src/sys/fs/devfs/devfs_vnops.c:807
#24 0xffffffff81102dc9 in VOP_IOCTL_APV (vop=<optimized out>,
a=0xfffffe004b88b6b8) at vnode_if.c:1067
#25 0xffffffff80bb3e74 in VOP_IOCTL (vp=<optimized out>, command=<optimized
out>, data=<optimized out>, fflag=18, cred=<optimized out>, td=<optimized out>)
at ./vnode_if.h:448
#26 vn_ioctl (fp=0xfffff800224122d0, com=<optimized out>,
data=0xfffff8001e97d800, active_cred=0xfffff8001e7fa000, td=0x278) at
/usr/src/sys/kern/vfs_vnops.c:1507
#27 0xffffffff8099ec8f in devfs_ioctl_f (fp=0xffffffff81be33f8 <cnputs_mtx>,
com=128, data=0xfffffe004b88b0c0, cred=0x80, td=0xfffff80022ac9000) at
/usr/src/sys/fs/devfs/devfs_vnops.c:765
#28 0xffffffff80b3f129 in fo_ioctl (fp=<optimized out>, com=<optimized out>,
active_cred=0x80, td=<optimized out>, data=<optimized out>) at
/usr/src/sys/sys/file.h:325
#29 kern_ioctl (td=0xfffff80022ac9000, fd=<optimized out>, com=<optimized out>,
data=0xfffffe004b88b0c0 "") at /usr/src/sys/kern/sys_generic.c:838
#30 0xffffffff80b3edfc in sys_ioctl (td=0xfffff80022ac9000,
uap=0xfffff80022ac93b8) at /usr/src/sys/kern/sys_generic.c:747
#31 0xffffffff80f8de2b in syscallenter (td=0xfffff80022ac9000) at
/usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:134
#32 amd64_syscall (td=0xfffff80022ac9000, traced=0) at
/usr/src/sys/amd64/amd64/trap.c:935
#33 0xffffffff80f68a0d in fast_syscall_common () at
/usr/src/sys/amd64/amd64/exception.S:480
#34 0x0000000000000003 in ?? ()
#35 0x00000000c4e01902 in ?? ()
#36 0x00007fffffffa1e0 in ?? ()
#37 0x00007fffffffa1e0 in ?? ()
#38 0x00000000000004e0 in ?? ()
#39 0x0000000000000000 in ?? ()
(kgdb) up
#1 doadump (textdump=0) at /usr/src/sys/kern/kern_shutdown.c:347
347 dumptid = curthread->td_tid;
(kgdb)
#2 0xffffffff8040a96b in db_dump (dummy=<optimized out>, dummy2=<unavailable>,
dummy3=<unavailable>, dummy4=<unavailable>) at
/usr/src/sys/ddb/db_command.c:574
574 error = doadump(false);
(kgdb)
#3 0xffffffff8040a739 in db_command (last_cmdp=<optimized out>,
cmd_table=<optimized out>, dopager=<optimized out>) at
/usr/src/sys/ddb/db_command.c:481
481 (*cmd->fcn)(addr, have_addr, count, modif);
(kgdb)
#4 0xffffffff8040a4b4 in db_command_loop () at
/usr/src/sys/ddb/db_command.c:534
534 db_command(&db_last_command, &db_cmd_table, /* dopager */
1);
(kgdb)
#5 0xffffffff8040d6df in db_trap (type=<optimized out>, code=<optimized out>)
at /usr/src/sys/ddb/db_main.c:250
250 db_command_loop();
(kgdb)
#6 0xffffffff80b19333 in kdb_trap (type=3, code=-61456, tf=<optimized out>) at
/usr/src/sys/kern/subr_kdb.c:697
697 handled = be->dbbe_trap(type, code);
(kgdb) tid 100432
(kgdb) bt
#0 cpustop_handler () at /usr/src/sys/x86/x86/mp_x86.c:1324
#1 0xffffffff810f8934 in ipi_nmi_handler () at
/usr/src/sys/x86/x86/mp_x86.c:1280
#2 0xffffffff80f8c589 in trap (frame=0xfffffe000358bf30) at
/usr/src/sys/amd64/amd64/trap.c:188
#3 <signal handler called>
#4 smp_targeted_tlb_shootdown (mask=..., vector=246, pmap=0xffffffff81e5d4f0
<kernel_pmap_store>, addr1=<optimized out>, addr2=<optimized out>) at
/usr/src/sys/x86/x86/mp_x86.c:1558
#5 0xffffffff810f9172 in smp_masked_invlpg_range (mask=..., addr1=<optimized
out>, addr2=18446744071593589760, pmap=<optimized out>) at
/usr/src/sys/x86/x86/mp_x86.c:1594
#6 0xffffffff80f770e1 in pmap_invalidate_range (pmap=0xffffffff81e5d4f0
<kernel_pmap_store>, sva=18446741875731156992, eva=18446741875731161088) at
/usr/src/sys/amd64/amd64/pmap.c:1771
#7 0xffffffff80f7ae57 in pmap_remove_ptes (pmap=0xffffffff81e5d4f0
<kernel_pmap_store>, sva=18446741875731161088, eva=18446741875731173376,
pde=0xfffff80003006f90, free=0xfffffe004b8816c0, lockp=0xfffffe004b8816d8) at
/usr/src/sys/amd64/amd64/pmap.c:4086
#8 0xffffffff80f79334 in pmap_remove (pmap=0xffffffff81e5d4f0
<kernel_pmap_store>, sva=18446741875731156992, eva=18446741875731173376) at
/usr/src/sys/amd64/amd64/pmap.c:4222
#9 0xffffffff80dfaca1 in vm_map_delete (map=0xfffff800035e0828,
start=<optimized out>, end=18446741875731173376) at
/usr/src/sys/vm/vm_map.c:3161
#10 0xffffffff80dfe101 in vm_map_remove (map=0xfffff800035e0828,
start=18446741875731156992, end=18446741875731173376) at
/usr/src/sys/vm/vm_map.c:3188
#11 0xffffffff80b4376f in pipe_free_kmem (cpipe=<optimized out>) at
/usr/src/sys/kern/sys_pipe.c:1638
#12 pipeclose (cpipe=0xfffff80022cc68e8) at /usr/src/sys/kern/sys_pipe.c:1703
#13 0xffffffff80b4321a in pipe_dtor (dpipe=<optimized out>) at
/usr/src/sys/kern/sys_pipe.c:390
#14 pipe_close (fp=0xfffff80184b742d0, td=<optimized out>) at
/usr/src/sys/kern/sys_pipe.c:1575
#15 0xffffffff80a80585 in fo_close (fp=<optimized out>, td=<optimized out>) at
/usr/src/sys/sys/file.h:348
#16 _fdrop (fp=<optimized out>, td=<optimized out>) at
/usr/src/sys/kern/kern_descrip.c:2893
#17 closef (fp=0xfffff80184b742d0, td=0xfffff80022aca000) at
/usr/src/sys/kern/kern_descrip.c:2474
#18 0xffffffff80a7d800 in closefp (fdp=0xfffff80022a7f450, fd=3,
fp=0xfffff80184b742d0, td=0xfffff80022aca000, holdleaders=0) at
/usr/src/sys/kern/kern_descrip.c:1195
#19 0xffffffff80f8de2b in syscallenter (td=0xfffff80022aca000) at
/usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:134
#20 amd64_syscall (td=0xfffff80022aca000, traced=0) at
/usr/src/sys/amd64/amd64/trap.c:935
#21 0xffffffff80f68a0d in fast_syscall_common () at
/usr/src/sys/amd64/amd64/exception.S:480
#22 0x0000000000000003 in ?? ()
#23 0x00007fffffffe840 in ?? ()
#24 0x0000000000000080 in ?? ()
#25 0x0000000000000000 in ?? ()
(kgdb)
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list