Files
mirror_zfs/module/zfs
Brian Behlendorf 5592404784 Fix synchronous behavior in __vdev_disk_physio()
Commit b39c22b set the READ_SYNC and WRITE_SYNC flags for a bio
based on the ZIO_PRIORITY_* flag passed in.  This had the unnoticed
side-effect of making the vdev_disk_io_start() synchronous for
certain I/Os.

This in turn resulted in vdev_disk_io_start() being able to
re-dispatch zio's which would result in a RCU stalls when a disk
was removed from the system.  Additionally, this could negatively
impact performance and explains the performance regressions reported
in both #3829 and #3780.

This patch resolves the issue by making the blocking behavior
dependent on a 'wait' flag being passed rather than overloading
the passed bio flags.

Finally, the WRITE_SYNC and READ_SYNC behavior is restricted to
non-rotational devices where there is no benefit to queuing to
aggregate the I/O.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #3652
Issue #3780
Issue #3785
Issue #3817
Issue #3821
Issue #3829
Issue #3832
Issue #3870
2015-09-25 12:47:31 -07:00
..
2015-09-25 12:45:47 -07:00
2014-08-01 14:28:05 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-07-06 09:31:30 -07:00
2015-01-16 14:41:26 -08:00
2015-09-04 15:30:24 -04:00
2013-12-18 16:46:35 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2010-08-31 13:41:59 -07:00
2010-08-31 13:41:58 -07:00
2015-08-19 16:04:33 -07:00
2015-09-02 09:30:18 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-08-30 10:10:16 -07:00
2013-10-31 14:58:04 -07:00
2015-09-01 15:22:07 -07:00
2015-05-04 09:41:09 -07:00
2015-01-16 14:41:26 -08:00
2010-08-31 13:41:58 -07:00
2015-09-04 16:08:14 -07:00
2015-01-16 14:41:26 -08:00
2013-10-30 14:51:27 -07:00
2015-09-04 16:08:14 -07:00
2014-09-05 15:11:43 -07:00
2015-01-16 14:41:26 -08:00
2014-08-01 14:28:05 -07:00