[dtrace-discuss] Trying to identify writer and/or reason for iowrite.
Brendan Gregg - Sun Microsystems
brendan at sun.com
Tue Dec 9 11:41:33 PST 2008
On Fri, Dec 05, 2008 at 05:15:09PM -0500, Jim Mauro wrote:
> The problem you're running into is disk IO operations tend to occur
> asynchronously to the thread that initiated the IO, so when the IO
> provider probe fires, execname shows the process name for PID 0.
> This is not uncommon when chasing disk and network IOs. You
> need to capture the write further up the stack.
Yes; This happens in particular with ZFS, which uses a pipeline and task
queues to dispatch writes. It's a great FS design, but makes debugging
more difficult.
# dtrace -n 'io:::start { @[stack()] = count(); }'
[...]
genunix`ldi_strategy+0x54
zfs`vdev_disk_io_start+0x1a5
zfs`zio_vdev_io_start+0x148
zfs`zio_execute+0x7f
zfs`vdev_queue_io_done+0x98
zfs`vdev_disk_io_done+0x2b
zfs`zio_vdev_io_done+0x22
zfs`zio_execute+0x7f
genunix`taskq_thread+0x1a7
unix`thread_start+0x8
1500
Brendan
--
Brendan Gregg, Sun Microsystems Fishworks. http://blogs.sun.com/brendan
More information about the dtrace-discuss
mailing list