summaryrefslogtreecommitdiffstats
path: root/contrib/libucl
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2014-04-30 17:46:29 +0000
committersmh <smh@FreeBSD.org>2014-04-30 17:46:29 +0000
commit14906a620b6524bb6bd3f17265e6c4464f7e31d1 (patch)
tree85e14bcb4f575216f44ab083c3402c7352507c9f /contrib/libucl
parent6429f5f6361b358fde4f2643463a38637e700f1b (diff)
downloadFreeBSD-src-14906a620b6524bb6bd3f17265e6c4464f7e31d1.zip
FreeBSD-src-14906a620b6524bb6bd3f17265e6c4464f7e31d1.tar.gz
Reintroduce priority for the TRIM ZIOs instead of using the "NOW" priority
The changes how TRIM requests are generated to use ZIO_TYPE_FREE + a priority instead of ZIO_TYPE_IOCTL, until processed by vdev_geom; only then is it translated the required geom values. This reduces the amount of changes required for FREE requests to be supported by the new IO scheduler. This also eliminates the need for a specific DKIOCTRIM. Also fixed FREE vdev child IO's from running ZIO_STAGE_VDEV_IO_DONE as part of their schedule. As the new IO scheduler can result in a request to execute one type of IO to actually run a different type of IO it requires that zio_trim requests are processed without holding the trim map lock (tm->tm_lock), as the free request execute call may result in write request running hence triggering a trim_map_write_start call, which takes the trim map lock and hence would result in recused on no-recursive sx lock. This is based off avg's original work, so credit to him. MFC after: 1 month
Diffstat (limited to 'contrib/libucl')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud