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
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to