HomeFreeBSD

Allow MMP to bypass waiting for other threads

Description

Allow MMP to bypass waiting for other threads

At our site we have seen cases when multi-modifier protection is enabled
(multihost=on) on our pool and the pool gets suspended due to a single
disk that is failing and responding very slowly. Our pools have 90 disks
in them and we expect disks to fail. The current version of MMP requires
that we wait for other writers before moving on. When a disk is
responding very slowly, we observed that waiting here was bad enough to
cause the pool to suspend. This change allows the MMP thread to bypass
waiting for other threads and reduces the chances the pool gets
suspended.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Herb Wartens <hawartens@gmail.com>
Closes #14659

Details

Provenance
Herb Wartens <hawartens@gmail.com>Authored on Apr 19 2023, 8:22 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Apr 24 2023, 7:55 PM
Parents
rGcdbe1d65c4bf: Increase default zfs_rebuild_vdev_limit to 64MB
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG33075e465f82: Allow MMP to bypass waiting for other threads (authored by Herb Wartens <hawartens@gmail.com>).Apr 24 2023, 7:55 PM