]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: Add conf.bluestore_write_v2_random
authorAdam Kupczyk <akupczyk@ibm.com>
Thu, 25 Jul 2024 07:48:14 +0000 (07:48 +0000)
committerAdam Kupczyk <akupczyk@ibm.com>
Wed, 7 Aug 2024 10:55:46 +0000 (10:55 +0000)
Added conf.bluestore_write_v2_random. This is useful only for testing.
If set, it overrides value of bluestore_write_v2 with a random
true/false selection.
It is useful for v1 / v2 compatibility testing.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
src/common/options/global.yaml.in
src/os/bluestore/BlueStore.cc

index 19aea6408653aa56760191181e7f6278f9dfe473..8e32b6c8846e71e8cd74bcbfea33ed3273e53240 100644 (file)
@@ -5053,6 +5053,17 @@ options:
   flags:
   - startup
   with_legacy: false
+- name: bluestore_write_v2_random
+  type: bool
+  level: advanced
+  desc: Random selection of write path mode
+  long_desc: For testing purposes. If true, value of bluestore_write_v2 is randomly selected.
+  default: false
+  see_also:
+  - bluestore_write_v2
+  flags:
+  - startup
+  with_legacy: false
 - name: bluestore_allocator
   type: str
   level: advanced
index 299cd90d0006cc32936ffe6376b758136eb89ff6..d35a59a46398119d9737ad8756c94fe8c6d06091 100644 (file)
@@ -9149,7 +9149,12 @@ int BlueStore::_mount()
       return r;
     }
   }
-  use_write_v2 =   cct->_conf.get_val<bool>("bluestore_write_v2");
+  use_write_v2 = cct->_conf.get_val<bool>("bluestore_write_v2");
+  if (cct->_conf.get_val<bool>("bluestore_write_v2_random")) {
+    srand(time(NULL));
+    use_write_v2 = rand() % 2;
+    cct->_conf.set_val("bluestore_write_v2", std::to_string(use_write_v2));
+  }
   _kv_only = false;
   if (cct->_conf->bluestore_fsck_on_mount) {
     int rc = fsck(cct->_conf->bluestore_fsck_on_mount_deep);