Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Oct 2014 11:40:11 -0700
From:      "K. Macy" <kmacy@freebsd.org>
To:        Steven Hartland <killing@multiplay.co.uk>
Cc:        Mark Martinec <Mark.Martinec+freebsd@ijs.si>, "freebsd-fs@FreeBSD.org" <freebsd-fs@freebsd.org>, FreeBSD Stable <freebsd-stable@freebsd.org>
Subject:   Re: zfs pool import hangs on [tx->tx_sync_done_cv]
Message-ID:  <CAHM0Q_OSySRxk4VCu2txDG5%2ByYC=CDsQvB2tP6q%2BGS-5pRb_wQ@mail.gmail.com>
In-Reply-To: <CAHM0Q_OpV2sAQQAH6Cj_=yJWAOt8pTPWQ-m45JSiXDpBwT6WTA@mail.gmail.com>
References:  <54372173.1010100@ijs.si> <644FA8299BF848E599B82D2C2C298EA7@multiplay.co.uk> <54372EBA.1000908@ijs.si> <DE7DD7A94E9B4F1FBB3AFF57EDB47C67@multiplay.co.uk> <543731F3.8090701@ijs.si> <543AE740.7000808@ijs.si> <A5BA41116A7F4B23A9C9E469C4146B99@multiplay.co.uk> <CAHM0Q_N%2BC=3qgUnyDkEugOFcL=J8gBjbTg8v45Vz3uT=e=Fn2g@mail.gmail.com> <6E01BBEDA9984CCDA14F290D26A8E14D@multiplay.co.uk> <CAHM0Q_OpV2sAQQAH6Cj_=yJWAOt8pTPWQ-m45JSiXDpBwT6WTA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>> Yer I would have got the zio details but typically its "optimised out" b=
y
>> the
>> compiler, so will need some effort to track that down unfortunately :(
>
>
> Well, let me know if you can. Re-creating a new 10.x VM is taking a while=
 as
> it's taking me forever to checkout the sources.
>
> Things like that need to somehow continue to be accessible.


So there is an outstanding child, but it isn't clear what state it's
in because the child pointer in the zio_link isn't valid. It's as if
the memory got re-used for something else. I'm dumping my findings
below on the off-chance that it helps you push this along.




(kgdb) thread 459
[Switching to thread 459 (Thread 101524)]#0  sched_switch
(td=3D0xfffff80063111000, newtd=3D<value optimized out>,
    flags=3D<value optimized out>) at
/usr/home/kmacy/devel/svn/10/sys/kern/sched_ule.c:1945
1945                    cpuid =3D PCPU_GET(cpuid);
Current language:  auto; currently minimal
(kgdb) bt
#0  sched_switch (td=3D0xfffff80063111000, newtd=3D<value optimized out>,
flags=3D<value optimized out>)
    at /usr/home/kmacy/devel/svn/10/sys/kern/sched_ule.c:1945
#1  0xffffffff807aa199 in mi_switch (flags=3D260, newtd=3D0x0) at
/usr/home/kmacy/devel/svn/10/sys/kern/kern_synch.c:494
#2  0xffffffff807e6e82 in sleepq_switch (wchan=3D<value optimized out>,
pri=3D<value optimized out>)
    at /usr/home/kmacy/devel/svn/10/sys/kern/subr_sleepqueue.c:538
#3  0xffffffff807e6ce3 in sleepq_wait (wchan=3D0xfffff8004ddf4a50, pri=3D0)
    at /usr/home/kmacy/devel/svn/10/sys/kern/subr_sleepqueue.c:617
#4  0xffffffff80750d7a in _cv_wait (cvp=3D0xfffff8004ddf4a50,
lock=3D0xfffff8004ddf4a30)
    at /usr/home/kmacy/devel/svn/10/sys/kern/kern_condvar.c:139
#5  0xffffffff817d145b in zio_wait (zio=3D<value optimized out>)
    at /usr/home/kmacy/devel/svn/10/sys/modules/zfs/../../cddl/contrib/open=
solaris/uts/common/fs/zfs/zio.c:1442
#6  0xffffffff81779d3c in dsl_pool_sync (dp=3D0xfffff8004d364800, txg=3D117=
33518)
    at /usr/home/kmacy/devel/svn/10/sys/modules/zfs/../../cddl/contrib/open=
solaris/uts/common/fs/zfs/dsl_pool.c:531
#7  0xffffffff8179d800 in spa_sync (spa=3D0xfffffe000372f000, txg=3D1173351=
8)
    at /usr/home/kmacy/devel/svn/10/sys/modules/zfs/../../cddl/contrib/open=
solaris/uts/common/fs/zfs/spa.c:6604
#8  0xffffffff817a7e9d in txg_sync_thread (arg=3D0xfffff8004d364800)
    at /usr/home/kmacy/devel/svn/10/sys/modules/zfs/../../cddl/contrib/open=
solaris/uts/common/fs/zfs/txg.c:518
#9  0xffffffff8076ed34 in fork_exit (callout=3D0xffffffff817a7c50
<txg_sync_thread>, arg=3D0xfffff8004d364800,
    frame=3D0xfffffe012043fac0) at
/usr/home/kmacy/devel/svn/10/sys/kern/kern_fork.c:996
#10 0xffffffff80b96b3e in fork_trampoline () at
/usr/home/kmacy/devel/svn/10/sys/amd64/amd64/exception.S:606
#11 0x0000000000000000 in ?? ()
(kgdb) f 5
#5  0xffffffff817d145b in zio_wait (zio=3D<value optimized out>)
    at /usr/home/kmacy/devel/svn/10/sys/modules/zfs/../../cddl/contrib/open=
solaris/uts/common/fs/zfs/zio.c:1442
1442                    cv_wait(&zio->io_cv, &zio->io_lock);
(kgdb) disassemble zio_wait
Dump of assembler code for function zio_wait:
0xffffffff817d13c0 <zio_wait+0>:        push   %rbp
0xffffffff817d13c1 <zio_wait+1>:        mov    %rsp,%rbp
0xffffffff817d13c4 <zio_wait+4>:        push   %r15
0xffffffff817d13c6 <zio_wait+6>:        push   %r14
0xffffffff817d13c8 <zio_wait+8>:        push   %r12
0xffffffff817d13ca <zio_wait+10>:       push   %rbx
0xffffffff817d13cb <zio_wait+11>:       mov    %rdi,%r14
0xffffffff817d13ce <zio_wait+14>:       cmpl   $0x1,0x254(%r14)
0xffffffff817d13d6 <zio_wait+22>:       je     0xffffffff817d13f0 <zio_wait=
+48>
0xffffffff817d13d8 <zio_wait+24>:       mov    $0xffffffff81883de9,%rdi
0xffffffff817d13df <zio_wait+31>:       mov    $0xffffffff81883b20,%rsi
0xffffffff817d13e6 <zio_wait+38>:       mov    $0x599,%edx
0xffffffff817d13eb <zio_wait+43>:       callq  0xffffffff81a19200 <assfail>
0xffffffff817d13f0 <zio_wait+48>:       cmpq   $0x0,0x2f0(%r14)
0xffffffff817d13f8 <zio_wait+56>:       je     0xffffffff817d1412 <zio_wait=
+82>
0xffffffff817d13fa <zio_wait+58>:       mov    $0xffffffff8188410c,%rdi
0xffffffff817d1401 <zio_wait+65>:       mov    $0xffffffff81883b20,%rsi
0xffffffff817d1408 <zio_wait+72>:       mov    $0x59a,%edx
0xffffffff817d140d <zio_wait+77>:       callq  0xffffffff81a19200 <assfail>
0xffffffff817d1412 <zio_wait+82>:       mov    %gs:0x0,%rax
0xffffffff817d141b <zio_wait+91>:       mov    %rax,0x2f8(%r14)
0xffffffff817d1422 <zio_wait+98>:       mov    %r14,%rdi
0xffffffff817d1425 <zio_wait+101>:      callq  0xffffffff817d24c0 <zio_exec=
ute>
0xffffffff817d142a <zio_wait+106>:      lea    0x300(%r14),%r15
0xffffffff817d1431 <zio_wait+113>:      xor    %esi,%esi
0xffffffff817d1433 <zio_wait+115>:      mov    $0xffffffff81883b20,%rdx
0xffffffff817d143a <zio_wait+122>:      mov    $0x5a0,%ecx
0xffffffff817d143f <zio_wait+127>:      mov    %r15,%rdi
0xffffffff817d1442 <zio_wait+130>:      callq  0xffffffff807a8270 <_sx_xloc=
k>
0xffffffff817d1447 <zio_wait+135>:      lea    0x320(%r14),%rbx
0xffffffff817d144e <zio_wait+142>:      jmp    0xffffffff817d145b <zio_wait=
+155>
0xffffffff817d1450 <zio_wait+144>:      mov    %rbx,%rdi
0xffffffff817d1453 <zio_wait+147>:      mov    %r15,%rsi
0xffffffff817d1456 <zio_wait+150>:      callq  0xffffffff80750ba0 <_cv_wait=
>
0xffffffff817d145b <zio_wait+155>:      cmpq   $0x0,0x2f0(%r14)
0xffffffff817d1463 <zio_wait+163>:      jne    0xffffffff817d1450 <zio_wait=
+144>
0xffffffff817d1465 <zio_wait+165>:      mov    $0xffffffff81883b20,%rsi
0xffffffff817d146c <zio_wait+172>:      mov    $0x5a3,%edx
0xffffffff817d1471 <zio_wait+177>:      mov    %r15,%rdi
0xffffffff817d1474 <zio_wait+180>:      callq  0xffffffff807a8630 <_sx_xunl=
ock>
0xffffffff817d1479 <zio_wait+185>:      mov    0x268(%r14),%r12d
0xffffffff817d1480 <zio_wait+192>:      lea    0xf0(%r14),%rdi
0xffffffff817d1487 <zio_wait+199>:      callq  0xffffffff8172d480 <list_des=
troy>
0xffffffff817d148c <zio_wait+204>:      lea    0x110(%r14),%rdi
0xffffffff817d1493 <zio_wait+211>:      callq  0xffffffff8172d480 <list_des=
troy>
0xffffffff817d1498 <zio_wait+216>:      mov    %r15,%rdi
0xffffffff817d149b <zio_wait+219>:      callq  0xffffffff807a8010 <sx_destr=
oy>
0xffffffff817d14a0 <zio_wait+224>:      mov    %rbx,%rdi
0xffffffff817d14a3 <zio_wait+227>:      callq  0xffffffff80750b50 <cv_destr=
oy>
0xffffffff817d14a8 <zio_wait+232>:      mov    0xffffffff818af6e0,%rdi
0xffffffff817d14b0 <zio_wait+240>:      mov    %r14,%rsi
0xffffffff817d14b3 <zio_wait+243>:      callq  0xffffffff81a19400
<kmem_cache_free>
0xffffffff817d14b8 <zio_wait+248>:      mov    %r12d,%eax
0xffffffff817d14bb <zio_wait+251>:      pop    %rbx
0xffffffff817d14bc <zio_wait+252>:      pop    %r12
0xffffffff817d14be <zio_wait+254>:      pop    %r14
0xffffffff817d14c0 <zio_wait+256>:      pop    %r15
0xffffffff817d14c2 <zio_wait+258>:      pop    %rbp
0xffffffff817d14c3 <zio_wait+259>:      retq
End of assembler dump.

0xffffffff817d1422 <zio_wait+98>:       mov    %r14,%rdi
0xffffffff817d1425 <zio_wait+101>:      callq  0xffffffff817d24c0 <zio_exec=
ute>
0xffffffff817d142a <zio_wait+106>:      lea    0x300(%r14),%r15
0xffffffff817d1431 <zio_wait+113>:      xor    %esi,%esi
0xffffffff817d1433 <zio_wait+115>:      mov    $0xffffffff81883b20,%rdx
0xffffffff817d143a <zio_wait+122>:      mov    $0x5a0,%ecx
0xffffffff817d143f <zio_wait+127>:      mov    %r15,%rdi
0xffffffff817d1442 <zio_wait+130>:      callq  0xffffffff807a8270 <_sx_xloc=
k>
0xffffffff817d1447 <zio_wait+135>:      lea    0x320(%r14),%rbx
0xffffffff817d144e <zio_wait+142>:      jmp    0xffffffff817d145b <zio_wait=
+155>
0xffffffff817d1450 <zio_wait+144>:      mov    %rbx,%rdi
0xffffffff817d1453 <zio_wait+147>:      mov    %r15,%rsi
0xffffffff817d1456 <zio_wait+150>:      callq  0xffffffff80750ba0 <_cv_wait=
>

(kgdb) p *(zio_t *)$r14
$1 =3D {
  io_bookmark =3D {
    zb_objset =3D 0,
    zb_object =3D 0,
    zb_level =3D 0,
    zb_blkid =3D 0
  },
  io_prop =3D {
    zp_checksum =3D ZIO_CHECKSUM_INHERIT,
    zp_compress =3D ZIO_COMPRESS_INHERIT,
    zp_type =3D DMU_OT_NONE,
    zp_level =3D 0 '\0',
    zp_copies =3D 0 '\0',
    zp_dedup =3D 0,
    zp_dedup_verify =3D 0,
    zp_nopwrite =3D 0
  },
  io_type =3D ZIO_TYPE_NULL,
  io_child_type =3D ZIO_CHILD_LOGICAL,
  io_cmd =3D 0,
  io_priority =3D ZIO_PRIORITY_NOW,
  io_reexecute =3D 2 '\002',
  io_state =3D "\001\001",
  io_txg =3D 0,
  io_spa =3D 0xfffffe000372f000,
  io_bp =3D 0x0,
  io_bp_override =3D 0x0,
  io_bp_copy =3D {
    blk_dva =3D {{
        dva_word =3D {0, 0}
      }, {
        dva_word =3D {0, 0}
      }, {
        dva_word =3D {0, 0}
      }},
    blk_prop =3D 0,
    blk_pad =3D {0, 0},
    blk_phys_birth =3D 0,
    blk_birth =3D 0,
    blk_fill =3D 0,
    blk_cksum =3D {
      zc_word =3D {0, 0, 0, 0}
    }
  },
  io_parent_list =3D {
    list_size =3D 48,
    list_offset =3D 16,
    list_head =3D {
      list_next =3D 0xfffff800b435c850,
      list_prev =3D 0xfffff800b435c850
    }
  },
  io_child_list =3D {
    list_size =3D 48,
    list_offset =3D 32,
    list_head =3D {
      list_next =3D 0xfffff80003585770,
      list_prev =3D 0xfffff80003585770
    }
  },
  io_walk_link =3D 0x0,
  io_logical =3D 0x0,
  io_transform_stack =3D 0x0,
  io_ready =3D 0,
  io_physdone =3D 0,
  io_done =3D 0,
  io_private =3D 0x0,
  io_prev_space_delta =3D 0,
  io_bp_orig =3D {
    blk_dva =3D {{
        dva_word =3D {0, 0}
      }, {
        dva_word =3D {0, 0}
      }, {
        dva_word =3D {0, 0}
      }},
    blk_prop =3D 0,
    blk_pad =3D {0, 0},
    blk_phys_birth =3D 0,
    blk_birth =3D 0,
    blk_fill =3D 0,
    blk_cksum =3D {
      zc_word =3D {0, 0, 0, 0}
    }
  },
  io_data =3D 0x0,
  io_orig_data =3D 0x0,
  io_size =3D 0,
  io_orig_size =3D 0,
  io_vd =3D 0x0,
  io_vsd =3D 0x0,
  io_vsd_ops =3D 0x0,
  io_offset =3D 0,
  io_timestamp =3D 0,
  io_queue_node =3D {
    avl_child =3D {0x0, 0x0},
    avl_pcb =3D 0
  },
  io_flags =3D 0,
  io_stage =3D ZIO_STAGE_DONE,
  io_pipeline =3D 2162688,
  io_orig_flags =3D 0,
  io_orig_stage =3D ZIO_STAGE_OPEN,
  io_orig_pipeline =3D 2162688,
  io_error =3D 0,
  io_child_error =3D {0, 0, 0, 0},
  io_children =3D {{0, 0}, {0, 0}, {0, 0}, {0, 0}},
  io_child_count =3D 1,
  io_phys_children =3D 0,
  io_parent_count =3D 1,
  io_stall =3D 0x0,
  io_gang_leader =3D 0x0,
  io_gang_tree =3D 0x0,
  io_executor =3D 0xfffff8006314a000,
  io_waiter =3D 0xfffff80063111000,
  io_lock =3D {
    lock_object =3D {
      lo_name =3D 0xffffffff8188655c "zio->io_lock",
      lo_flags =3D 41091072,
      lo_data =3D 0,
      lo_witness =3D 0xfffffe00006eca80
    },
    sx_lock =3D 1
  },
  io_cv =3D {
    cv_description =3D 0xffffffff8188656a "zio->io_cv",
    cv_waiters =3D 1
  },
  io_cksum_report =3D 0x0,
  io_ena =3D 0,
  io_tqent =3D {
    tqent_task =3D {
      ta_link =3D {
        stqe_next =3D 0x0
      },
      ta_pending =3D 0,
      ta_priority =3D 0,
      ta_func =3D 0,
      ta_context =3D 0x0
    },
    tqent_func =3D 0,
    tqent_arg =3D 0x0
  },
  io_trim_node =3D {
    avl_child =3D {0x0, 0x0},
    avl_pcb =3D 0
  },
  io_trim_link =3D {
    list_next =3D 0x0,
    list_prev =3D 0x0
  }
}


All of its children have called zio_notify_parent on this zio and
are error free:
  io_child_error =3D {0, 0, 0, 0},
  io_children =3D {{0, 0}, {0, 0}, {0, 0}, {0, 0}},

(kgdb) p ((zio_t *)$r14)->io_stall
$5 =3D (uint64_t *) 0x0

One child has itself not reached the end of zio_done:
  io_child_count =3D 1,

(kgdb) p ((zio_t *)$r14)->io_child_list
$2 =3D {
  list_size =3D 48,
  list_offset =3D 32,
  list_head =3D {
    list_next =3D 0xfffff80003585770,
    list_prev =3D 0xfffff80003585770
  }


(kgdb) p *(zio_link_t *)0xfffff80003585770
$15 =3D {
  zl_parent =3D 0xfffff8004ddf4850,
  zl_child =3D 0xfffff8004ddf4850,
  zl_parent_node =3D {
    list_next =3D 0xfffff8004dd62398,
    list_prev =3D 0xfffff8004d4d2730
  },
  zl_child_node =3D {
    list_next =3D 0x0,
    list_prev =3D 0x0
  }
}

I don't understand why the parent and child are the same, of course that
could be part of the problem. That address isn't a valid zio and there
and the child node entry doesn't point to anything.

It has a thread executing it (which itself is probably in cv_wait):
  io_executor =3D 0xfffff8006314a000,


(kgdb) p *((struct thread *)0xfffff8006314a000)
$11 =3D {
  td_lock =3D 0xffffffff81224b30,
  td_proc =3D 0xffffffff814438d8,
  td_plist =3D {
    tqe_next =3D 0xfffff8006312b920,
    tqe_prev =3D 0xfffff8006312a4a0
  },
  td_runq =3D {
    tqe_next =3D 0x0,
    tqe_prev =3D 0xffffffff811ef378
  },
  td_slpq =3D {
    tqe_next =3D 0x0,
    tqe_prev =3D 0xfffff80020e204c0
  },
  td_lockq =3D {
    tqe_next =3D 0x0,
    tqe_prev =3D 0x0
  },
  td_hash =3D {
    le_next =3D 0x0,
    le_prev =3D 0xfffffe0000879fc8
  },
  td_cpuset =3D 0xfffff800631d2318,
  td_sel =3D 0x0,
  td_sleepqueue =3D 0x0,
  td_turnstile =3D 0xfffff80063128480,
  td_rlqe =3D 0x0,
  td_umtxq =3D 0xfffff8004d7a6380,
  td_tid =3D 100345,
  td_sigqueue =3D {
    sq_signals =3D {
      __bits =3D {0, 0, 0, 0}
    },
    sq_kill =3D {
      __bits =3D {0, 0, 0, 0}
    },
    sq_list =3D {
      tqh_first =3D 0x0,
      tqh_last =3D 0xfffff8006314a0b8
    },
    sq_proc =3D 0xffffffff814438d8,
    sq_flags =3D 1
  },
  td_lend_user_pri =3D 255 '=C3=BF',
  td_flags =3D 4,
  td_inhibitors =3D 2,
  td_pflags =3D 2097152,
  td_dupfd =3D 0,
  td_sqqueue =3D 0,
  td_wchan =3D 0xfffff800b48a2900,
  td_wmesg =3D 0xffffffff80d64d7e "-",
  td_lastcpu =3D 0 '\0',
  td_oncpu =3D 255 '=C3=BF',
  td_owepreempt =3D 0 '\0',
  td_tsqueue =3D 0 '\0',
  td_locks =3D 0,
  td_rw_rlocks =3D 0,
  td_lk_slocks =3D 0,
  td_stopsched =3D 0,
  td_blocked =3D 0x0,
  td_lockname =3D 0x0,
  td_contested =3D {
    lh_first =3D 0x0
  },
  td_sleeplocks =3D 0xffffffff81369470,
---Type <return> to continue, or q <return> to quit---
  td_intr_nesting_level =3D 0,
  td_pinned =3D 0,
  td_ucred =3D 0xfffff800027f1e00,
  td_estcpu =3D 0,
  td_slptick =3D 226829,
  td_blktick =3D 0,
  td_swvoltick =3D 226829,
  td_cow =3D 0,
  td_ru =3D {
    ru_utime =3D {
      tv_sec =3D 0,
      tv_usec =3D 0
    },
    ru_stime =3D {
      tv_sec =3D 0,
      tv_usec =3D 0
    },
    ru_maxrss =3D 0,
    ru_ixrss =3D 0,
    ru_idrss =3D 0,
    ru_isrss =3D 0,
    ru_minflt =3D 0,
    ru_majflt =3D 0,
    ru_nswap =3D 0,
    ru_inblock =3D 0,
    ru_oublock =3D 0,
    ru_msgsnd =3D 0,
    ru_msgrcv =3D 0,
    ru_nsignals =3D 0,
    ru_nvcsw =3D 6,
    ru_nivcsw =3D 0
  },
  td_rux =3D {
    rux_runtime =3D 0,
    rux_uticks =3D 0,
    rux_sticks =3D 0,
    rux_iticks =3D 0,
    rux_uu =3D 0,
    rux_su =3D 0,
    rux_tu =3D 0
  },
  td_incruntime =3D 410296,
  td_runtime =3D 410296,
  td_pticks =3D 0,
  td_sticks =3D 0,
  td_iticks =3D 0,
  td_uticks =3D 0,
  td_intrval =3D 0,
  td_oldsigmask =3D {
    __bits =3D {0, 0, 0, 0}
  },
  td_generation =3D 6,
  td_sigstk =3D {
    ss_sp =3D 0x0,
    ss_size =3D 0,
    ss_flags =3D 0
  },
  td_xsig =3D 0,
  td_profil_addr =3D 0,
  td_profil_ticks =3D 0,
  td_name =3D "zio_write_intr_7\000\000\000",
  td_fpop =3D 0x0,
  td_dbgflags =3D 0,
  td_dbgksi =3D {
    ksi_link =3D {
      tqe_next =3D 0x0,
      tqe_prev =3D 0x0
    },
    ksi_info =3D {
      si_signo =3D 0,
      si_errno =3D 0,
      si_code =3D 0,
      si_pid =3D 0,
      si_uid =3D 0,
      si_status =3D 0,
      si_addr =3D 0x0,
      si_value =3D {
        sival_int =3D 0,
        sival_ptr =3D 0x0,
        sigval_int =3D 0,
        sigval_ptr =3D 0x0
      },
      _reason =3D {
        _fault =3D {
          _trapno =3D 0
        },
        _timer =3D {
          _timerid =3D 0,
          _overrun =3D 0
        },
        _mesgq =3D {
          _mqd =3D 0
        },
        _poll =3D {
          _band =3D 0
        },
        __spare__ =3D {
          __spare1__ =3D 0,
          __spare2__ =3D {0, 0, 0, 0, 0, 0, 0}
        }
      }
    },
    ksi_flags =3D 0,
    ksi_sigq =3D 0x0
  },
  td_ng_outbound =3D 0,
  td_osd =3D {
    osd_nslots =3D 0,
    osd_slots =3D 0x0,
    osd_next =3D {
      le_next =3D 0x0,
      le_prev =3D 0x0
    }
  },
  td_map_def_user =3D 0x0,
  td_dbg_forked =3D 0,
  td_vp_reserv =3D 0,
  td_no_sleeping =3D 0,
  td_dom_rr_idx =3D 0,
  td_sigmask =3D {
    __bits =3D {0, 0, 0, 0}
  },
  td_rqindex =3D 21 '\025',
  td_base_pri =3D 84 'T',
  td_priority =3D 84 'T',
  td_pri_class =3D 3 '\003',
  td_user_pri =3D 172 '=C2=AC',
  td_base_user_pri =3D 172 '=C2=AC',
  td_pcb =3D 0xfffffe012060eb80,
  td_state =3D TDS_INHIBITED,
  td_retval =3D {0, 0},
  td_slpcallout =3D {
---Type <return> to continue, or q <return> to quit---
    c_links =3D {
      le =3D {
        le_next =3D 0x0,
        le_prev =3D 0x0
      },
      sle =3D {
        sle_next =3D 0x0
      },
      tqe =3D {
        tqe_next =3D 0x0,
        tqe_prev =3D 0x0
      }
    },
    c_time =3D 0,
    c_precision =3D 0,
    c_arg =3D 0x0,
    c_func =3D 0,
    c_lock =3D 0x0,
    c_flags =3D 16,
    c_cpu =3D 0
  },
  td_frame =3D 0xfffffe012060eac0,
  td_kstack_obj =3D 0xfffff8006314cd00,
  td_kstack =3D 18446741879524470784,
  td_kstack_pages =3D 4,
  td_critnest =3D 1,
  td_md =3D {
    md_spinlock_count =3D 1,
    md_saved_flags =3D 582,
    md_spurflt_addr =3D 0
  },
  td_sched =3D 0xfffff8006314a468,
  td_ar =3D 0x0,
  td_lprof =3D {{
      lh_first =3D 0x0
    }, {
      lh_first =3D 0x0
    }},
  td_dtrace =3D 0xfffff800b437ce00,
  td_errno =3D 0,
  td_vnet =3D 0x0,
  td_vnet_lpush =3D 0x0,
  td_intr_frame =3D 0x0,
  td_rfppwait_p =3D 0x0,
  td_ma =3D 0x0,
  td_ma_cnt =3D 0
}
Interesting bits about the executing thread:

  td_name =3D "zio_write_intr_7\000\000\000",
  td_critnest =3D 1,
  td_md =3D {
    md_spinlock_count =3D 1,
    md_saved_flags =3D 582,
    md_spurflt_addr =3D 0
  },

Unfortunately executor is never cleared, so this is just the last
thread that happened to
execute this i/o.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHM0Q_OSySRxk4VCu2txDG5%2ByYC=CDsQvB2tP6q%2BGS-5pRb_wQ>