aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys
diff options
context:
space:
mode:
authorHerb Wartens <[email protected]>2023-04-19 13:22:59 -0700
committerGitHub <[email protected]>2023-04-19 13:22:59 -0700
commit71d191ef25d1c60e6725c07b6b94a0184f7db2eb (patch)
tree0ce649a37988c6205222811148c0e74eed17f1bc /include/sys
parentd4657835c8a5da816ab098fd2f1d62480865d087 (diff)
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 <[email protected]> Signed-off-by: Herb Wartens <[email protected]> Closes #14659
Diffstat (limited to 'include/sys')
-rw-r--r--include/sys/spa.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sys/spa.h b/include/sys/spa.h
index a1c102020..b96a9ef1d 100644
--- a/include/sys/spa.h
+++ b/include/sys/spa.h
@@ -977,6 +977,8 @@ extern int spa_import_progress_set_state(uint64_t pool_guid,
extern int spa_config_tryenter(spa_t *spa, int locks, const void *tag,
krw_t rw);
extern void spa_config_enter(spa_t *spa, int locks, const void *tag, krw_t rw);
+extern void spa_config_enter_mmp(spa_t *spa, int locks, const void *tag,
+ krw_t rw);
extern void spa_config_exit(spa_t *spa, int locks, const void *tag);
extern int spa_config_held(spa_t *spa, int locks, krw_t rw);