HomeFreeBSD

Disable r252840 when ZFS TRIM is enabled (vfs.zfs.trim.enabled=1) and really
rS253992Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

Disable r252840 when ZFS TRIM is enabled (vfs.zfs.trim.enabled=1) and really
disable TRIM otherwise.

r252840 (illumos bug 3836) is based on assumption that zio_free_sync() has
no lock dependencies and should complete immediately. Unfortunately, with our
TRIM implementation that is not true due to ZIO_STAGE_VDEV_IO_START added
to the ZIO_FREE_PIPELINE, which, while not really accessing devices, still
acquires SCL_ZIO lock for read to be sure devices won't disappear.

When TRIM is disabled, this patch enables direct free execution from r252840
and removes ZIO_STAGE_VDEV_IO_START and ZIO_STAGE_VDEV_IO_ASSESS stages from
the pipeline to avoid lock acquisition. Otherwise it queues free request as
it was before r252840.

Details

Provenance
mavAuthored on
Parents
rS253991: Make `zpool clear` to reopen also reconnected cache and spare devices.
Branches
Unknown
Tags
Unknown

Event Timeline