Does anyone know why ZIO_IOCTL_PIPELINE does not include ZIO_STAGE_VDEV_IO_DONE?
Or, in other words, why ZIO_IOCTL_PIPELINE actively excludes it by not using
ZIO_VDEV_IO_STAGES?

It seems that ZIO_IOCTL_PIPELINE had ZIO_VDEV_IO_STAGES until this commit:
> commit e14bb3258d05c1b1077e2db7cf77088924e56919
> Author: Jeff Bonwick <[email protected]>
> Date:   Mon Sep 29 18:13:58 2008 -0700
>    6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure 
> handling
>    6667208 zfs/zpool commands on failed pool should not hang
>    6430480 grabbing config lock as writer during I/O load can take 
> excessively long

Of course, the commit message does not have any detailed explanations and the
referenced bugs are not publicly accessible.   And it was almost 9 years ago.

I wonder if the change was because of anything specific to illumos vdev_disk.
I think that it would be totally okay to enable ZIO_STAGE_VDEV_IO_DONE with
FreeBSD vdev_geom.  In fact, right now ZFS/FreeBSD has a bug because the done
stage is not executed.

-- 
Andriy Gapon

------------------------------------------
openzfs-developer
Archives: 
https://openzfs.topicbox.com/groups/developer/discussions/T4b8a967c63e22769-Mda794f9d688b2c7be34b8980
Powered by Topicbox: https://topicbox.com

Reply via email to