From 65e73f38852c6289fc0e499cde7ab6d64514a554 Mon Sep 17 00:00:00 2001 From: Adam Kupczyk Date: Sat, 30 Jan 2021 12:57:05 +0100 Subject: [PATCH] os/bluestore: Add option to check BlueFS reads Add option "bluefs_check_for_zeros" to check if there are any zero-filled page. If so, reread data. It is known that sometimes BlueStore gets such pages. See "bluestore_retry_disk_reads". Signed-off-by: Adam Kupczyk (cherry picked from commit 7e495c57fe0ec8d8bdb1dbff90b177e656a22cbe) --- src/common/legacy_config_opts.h | 1 + src/common/options.cc | 8 ++ src/os/bluestore/BlueFS.cc | 169 +++++++++++++++++++++++++++++++- src/os/bluestore/BlueFS.h | 11 +++ 4 files changed, 185 insertions(+), 4 deletions(-) diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index d30c5fda8a985..5a0aa9545e270 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -909,6 +909,7 @@ OPTION(bluefs_allocator, OPT_STR) // stupid | bitmap OPTION(bluefs_log_replay_check_allocations, OPT_BOOL) OPTION(bluefs_replay_recovery, OPT_BOOL) OPTION(bluefs_replay_recovery_disable_compact, OPT_BOOL) +OPTION(bluefs_check_for_zeros, OPT_BOOL) OPTION(bluestore_bluefs, OPT_BOOL) OPTION(bluestore_bluefs_env_mirror, OPT_BOOL) // mirror to normal Env for debug diff --git a/src/common/options.cc b/src/common/options.cc index 774f263a1e4a7..f9c7f5870b131 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -4207,6 +4207,14 @@ std::vector