https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219224

--- Comment #2 from Tino Reinhardt <t...@sdf.org> ---
Created attachment 182550
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=182550&action=edit
"procstat -kk -a" output

I'm now on
tools-2-b# uname -a
FreeBSD tools-2-b 11.0-RELEASE-p10 FreeBSD 11.0-RELEASE-p10 #0 r318236: Fri May
12 13:52:37 CEST 2017     root@tools-2-b:/usr/obj/usr/src/sys/DEBUG  amd64

This is GENERIC plus:

options         INVARIANTS
options         INVARIANT_SUPPORT
options         WITNESS
options         WITNESS_SKIPSPIN
options         DEBUG_LOCKS
options         DEBUG_VFS_LOCKS
options         DIAGNOSTIC

While running sync(2) in a loop, cf-agent hangs quickly:

tools-2-b# ktrace cf-agent
load: 20.62  cmd: cf-agent 5360 [zilog->zl_cv_batch[0]] 162.96r 0.01u 0.06s 0%
8740k

tools-2-b# kdump -f ktrace.out | tail
  5360 cf-agent CALL  close(0x5)
  5360 cf-agent RET   close 0
  5360 cf-agent CALL  munmap(0x8006b3000,0x10)
  5360 cf-agent RET   munmap 0
  5360 cf-agent CALL  munmap(0x8006b4000,0x10)
  5360 cf-agent RET   munmap 0
  5360 cf-agent CALL  fcntl(0x4,F_SETLK,0xffffd450)
  5360 cf-agent RET   fcntl 0
  5360 cf-agent CALL  unlink(0x7fffffffd080)
  5360 cf-agent NAMI  "/tmp/SEMDMDBrvXw+F@)aP1"

tools-2-b# procstat -kk 5360
  PID    TID COMM             TDNAME           KSTACK
 5360 102508 cf-agent         -                mi_switch+0x167
sleepq_switch+0xe7 sleepq_wait+0x43 _cv_wait+0x1e4 zil_commit+0x85
zfs_freebsd_putpages+0x7d6 VOP_PUTPAGES_APV+0x104 vnode_pager_putpages+0x89
vm_pageout_flush+0x12d vm_object_page_collect_flush+0x23a
vm_object_page_clean+0x1be vm_object_terminate+0xa9 vnode_destroy_vobject+0x79
zfs_freebsd_reclaim+0x63 VOP_RECLAIM_APV+0x104 vgonel+0x2bd vrecycle+0x4a
zfs_freebsd_inactive+0xd

tools-2-b# ps ax | grep sync
   27  -  DL     0:00.09 [syncer]
15560  0  S+     0:00.00 grep sync
 5177  1  RN     7:16.42 ./syncloop

tools-2-b# kill 5177
tools-2-b# kill -9 5177
tools-2-b# procstat -kk 5177
  PID    TID COMM             TDNAME           KSTACK                       
 5177 102515 syncloop         -                zfs_zget+0x20f zfs_get_data+0x7c
zil_commit+0x926 zfs_sync+0xad sys_sync+0xe6 amd64_syscall+0x2f6
Xfast_syscall+0xfb 
tools-2-b# procstat -kk 5177
  PID    TID COMM             TDNAME           KSTACK                       
 5177 102515 syncloop         -                zfs_zget+0x1b4 zfs_get_data+0x7c
zil_commit+0x926 zfs_sync+0xad sys_sync+0xe6 amd64_syscall+0x2f6
Xfast_syscall+0xfb 
tools-2-b# procstat -kk 5177
  PID    TID COMM             TDNAME           KSTACK                       
 5177 102515 syncloop         -                _sx_slock+0x73 dnode_verify+0xe2
dnode_hold_impl+0x53e dmu_bonus_hold+0x25 zfs_zget+0xcf zfs_get_data+0x7c
zil_commit+0x926 zfs_sync+0xad sys_sync+0xe6 amd64_syscall+0x2f6
Xfast_syscall+0xfb 
tools-2-b# procstat -kk 5177
  PID    TID COMM             TDNAME           KSTACK                       
 5177 102515 syncloop         -                dnode_hold_impl+0x53e
dmu_bonus_hold+0x25 zfs_zget+0xcf zfs_get_data+0x7c zil_commit+0x926
zfs_sync+0xad sys_sync+0xe6 amd64_syscall+0x2f6 Xfast_syscall+0xfb 

tools-2-b# procstat -kk -a > procstat-kk-a.txt

tools-2-b# kgdb -q /usr/lib/debug/boot/kernel/kernel.debug /dev/mem
Reading symbols from /usr/lib/debug/boot/kernel/zfs.ko.debug...done.
Loaded symbols for /usr/lib/debug/boot/kernel/zfs.ko.debug
Reading symbols from /usr/lib/debug/boot/kernel/opensolaris.ko.debug...done.
Loaded symbols for /usr/lib/debug/boot/kernel/opensolaris.ko.debug
Reading symbols from /usr/lib/debug/boot/kernel/carp.ko.debug...done.
Loaded symbols for /usr/lib/debug/boot/kernel/carp.ko.debug
Reading symbols from /usr/lib/debug/boot/kernel/if_lagg.ko.debug...done.
Loaded symbols for /usr/lib/debug/boot/kernel/if_lagg.ko.debug
Reading symbols from /usr/lib/debug/boot/kernel/ums.ko.debug...done.
Loaded symbols for /usr/lib/debug/boot/kernel/ums.ko.debug
Reading symbols from /usr/lib/debug/boot/kernel/pf.ko.debug...done.
Loaded symbols for /usr/lib/debug/boot/kernel/pf.ko.debug
#0  sched_switch (td=0xfffff801b1245500, newtd=0xfffff80115531000, 
    flags=<value optimized out>) at /usr/src/sys/kern/sched_ule.c:1973
1973                    cpuid = PCPU_GET(cpuid);
(kgdb) tid 102508
[Switching to thread 1672 (Thread 102508)]#0  sched_switch (
    td=0xfffff8055a385000, newtd=0xfffff80115533000, 
    flags=<value optimized out>) at /usr/src/sys/kern/sched_ule.c:1973
1973                    cpuid = PCPU_GET(cpuid);
Current language:  auto; currently minimal
#0  sched_switch (td=0xfffff8055a385000, newtd=0xfffff80115533000, 
    flags=<value optimized out>) at /usr/src/sys/kern/sched_ule.c:1973
#1  0xffffffff80a497d7 in mi_switch (flags=260, newtd=0x0)
    at /usr/src/sys/kern/kern_synch.c:455
#2  0xffffffff80a8dac7 in sleepq_switch (wchan=<value optimized out>, pri=0)
    at /usr/src/sys/kern/subr_sleepqueue.c:566
#3  0xffffffff80a8d993 in sleepq_wait (wchan=0xfffff801b112f8f8, pri=0)
    at /usr/src/sys/kern/subr_sleepqueue.c:646
#4  0xffffffff809e11b4 in _cv_wait (cvp=<value optimized out>, 
    lock=<value optimized out>) at /usr/src/sys/kern/kern_condvar.c:144
#5  0xffffffff82238545 in zil_commit (zilog=<value optimized out>, 
    foid=<value optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c:1574
#6  0xffffffff8226c746 in zfs_freebsd_putpages (ap=<value optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:4767
#7  0xffffffff81005e74 in VOP_PUTPAGES_APV (vop=<value optimized out>, 
    a=<value optimized out>) at vnode_if.c:2930
#8  0xffffffff80d3a349 in vnode_pager_putpages (object=<value optimized out>, 
    m=0xfffffe201e33a3f0, count=<value optimized out>, flags=0, 
    rtvals=0xfffffe201e33a360) at vnode_if.h:1224
#9  0xffffffff80d2f67d in vm_pageout_flush (mc=<value optimized out>, 
    count=<value optimized out>, flags=1, mreq=0, prunlen=0xfffffe201e33a4ac, 
    eio=0xfffffe201e33a530) at vm_pager.h:126
#10 0xffffffff80d26fca in vm_object_page_collect_flush (
    object=<value optimized out>, p=<value optimized out>, pagerflags=1, 
    flags=0, clearobjflags=<value optimized out>, eio=0xfffffe201e33a530)
    at /usr/src/sys/vm/vm_object.c:979
#11 0xffffffff80d26cbe in vm_object_page_clean (object=<value optimized out>, 
    start=<value optimized out>, end=<value optimized out>, 
    flags=<value optimized out>) at /usr/src/sys/vm/vm_object.c:905
#12 0xffffffff80d26829 in vm_object_terminate (object=<value optimized out>)
    at /usr/src/sys/vm/vm_object.c:739
#13 0xffffffff80d3a869 in vnode_destroy_vobject (vp=0xfffff804e7292000)
    at /usr/src/sys/vm/vnode_pager.c:173
#14 0xffffffff822761e3 in zfs_freebsd_reclaim (ap=<value optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:5367
#15 0xffffffff810047a4 in VOP_RECLAIM_APV (vop=<value optimized out>, 
    a=<value optimized out>) at vnode_if.c:2021
#16 0xffffffff80afdf0d in vgonel (vp=<value optimized out>) at vnode_if.h:830
#17 0xffffffff80afe45a in vrecycle (vp=0xfffff804e7292000)
    at /usr/src/sys/kern/vfs_subr.c:3087
#18 0xffffffff8227616d in zfs_freebsd_inactive (ap=<value optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:5349
#19 0xffffffff810045f4 in VOP_INACTIVE_APV (vop=<value optimized out>, 
    a=<value optimized out>) at vnode_if.c:1955
#20 0xffffffff80afca9b in vinactive (vp=0xfffff804e7292000, 
    td=0xfffff8055a385000) at vnode_if.h:807
#21 0xffffffff80afd2d8 in vputx (vp=<value optimized out>, 
    func=<value optimized out>) at /usr/src/sys/kern/vfs_subr.c:2682
#22 0xffffffff80b05ae2 in kern_unlinkat (td=<value optimized out>, fd=-100, 
    path=0x7fffffffd080 <Error reading address 0x7fffffffd080: Bad address>, 
    pathseg=UIO_USERSPACE, oldinum=<value optimized out>)
    at /usr/src/sys/kern/vfs_syscalls.c:1774
#23 0xffffffff80ea4426 in amd64_syscall (td=0xfffff8055a385000, 
    traced=<value optimized out>) at subr_syscall.c:135
#24 0xffffffff80e8497b in Xfast_syscall ()
    at /usr/src/sys/amd64/amd64/exception.S:396
#25 0x0000000802a72f7a in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb) frame 4
#4  0xffffffff809e11b4 in _cv_wait (cvp=<value optimized out>, 
    lock=<value optimized out>) at /usr/src/sys/kern/kern_condvar.c:144
144             sleepq_wait(cvp, 0);
(kgdb) p *cvp
$1 = {cv_description = 0xffffffff81c81848 "I.=\201????", 
  cv_waiters = -411880152}
(kgdb) frame 5
#5  0xffffffff82238545 in zil_commit (zilog=<value optimized out>, 
    foid=<value optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c:1574
1574                    cv_wait(&zilog->zl_cv_batch[mybatch & 1],
&zilog->zl_lock);
(kgdb) p *zilog
$2 = {zl_lock = {lock_object = {lo_name = 0xffffffff81c81848 "I.=\201????", 
      lo_flags = 3883087144, lo_data = 4294965252, lo_witness = 0x0}, 
    sx_lock = 18446735298679485752}, zl_dmu_pool = 0x0, 
  zl_spa = 0xffffffff81bb7cc8, zl_header = 0x0, zl_os = 0xfffff804e7665e80, 
  zl_get_data = 0, zl_root_zio = 0x0, zl_lr_seq = 0, 
  zl_commit_lr_seq = 18446741874700784480, 
  zl_destroy_txg = 18446735282269118464, zl_replayed_seq = 0xfffff8055a385068, 
  zl_replaying_seq = 18446735284892366080, zl_suspend = 0, zl_cv_writer = {
    cv_description = 0x1906cffffffff <Error reading address 0x1906cffffffff:
Bad address>, cv_waiters = 0}, zl_cv_suspend = {cv_description = 0x0, 
    cv_waiters = 0}, zl_suspending = 0 '\0', zl_keep_first = 0 '\0', 
  zl_replay = 0 '\0', zl_stop_sync = 0 '\0', zl_writer = 0 '\0', 
  zl_logbias = 0 '\0', zl_sync = 0 '\0', zl_parse_error = 0, 
  zl_parse_blk_seq = 18446735300605006016, 
  zl_parse_lr_seq = 18446735298679485736, zl_parse_blk_count = 1, 
  zl_parse_lr_count = 17179869439, zl_next_batch = 2, zl_com_batch = 0, 
  zl_cv_batch = 0xfffff8055a3850f8, zl_itxg = 0xfffff8055a385118, 
  zl_itx_commit_list = {list_size = 206226633, list_offset = 2, list_head = {
      list_next = 0x8, list_prev = 0x0}}, zl_itx_list_sz = 15863, 
  zl_cur_used = 63452, zl_lwb_list = {list_size = 79316, list_offset = 0, 
    list_head = {list_next = 0xc4ac4c9, list_prev = 0x0}}, zl_vdev_lock = {
    lock_object = {lo_name = 0x0, lo_flags = 0, lo_data = 0, 
      lo_witness = 0x0}, sx_lock = 270582939648}, zl_vdev_tree = {
    avl_root = 0x0, avl_compar = 0, avl_offset = 4, avl_numnodes = 0, 
    avl_size = 0}, zl_clean_taskq = 0x612d666300000000, zl_bp_tree = {
    avl_root = 0x746e6567, avl_compar = 0, avl_offset = 0, avl_numnodes = 0, 
    avl_size = 0}, zl_replay_time = 0, zl_replay_blks = 0, zl_old_header = {
    zh_claim_txg = 0, zh_replay_seq = 0, zh_log = {
      blk_dva = 0xfffff8055a3852e0, blk_prop = 0, 
      blk_pad = 0xfffff8055a385318, blk_phys_birth = 0, blk_birth = 2, 
      blk_fill = 18446735284884707568, blk_cksum = {
        zc_word = 0xfffff8055a385340}}, zh_claim_blk_seq = 0, zh_flags = 0, 
    zh_claim_lr_seq = 0, zh_pad = 0xfffff8055a385378}, 
  zl_prev_blks = 0xfffff8055a385390, zl_prev_rotor = 0, zl_dirty_link = {
    tn_next = 0xfffff8055a3853d8, 
    tn_member = 0xfffff8055a3853f8 "@֨\200????"}}
(kgdb)

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to