From: Igor Fedotov Date: Thu, 15 Feb 2024 10:34:32 +0000 (+0300) Subject: test/store_test: fix DeferredWrite test when prefer_deferred_size=0 X-Git-Tag: testing/wip-jcollin-testing-20240711.095637-squid~21^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=feeb0d44472b0379dd45c05432a87cc3f529d7c0;p=ceph-ci.git test/store_test: fix DeferredWrite test when prefer_deferred_size=0 Fixes: https://tracker.ceph.com/issues/64443 Signed-off-by: Igor Fedotov (cherry picked from commit ac4a48c4be1791a32cfd2cf3cf5af51eee581d21) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 7d02b1551e0..2033989aa60 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -16249,7 +16249,9 @@ int BlueStore::_do_alloc_write( if (!g_conf()->bluestore_debug_omit_block_device_write) { if (data_size < prefer_deferred_size_snapshot) { dout(20) << __func__ << " deferring 0x" << std::hex - << l->length() << std::dec << " write via deferred" << dendl; + << l->length() << " write via deferred, pds=0x" + << prefer_deferred_size_snapshot + << std::dec<< dendl; bluestore_deferred_op_t *op = _get_deferred_op(txc, l->length()); op->op = bluestore_deferred_op_t::OP_WRITE; int r = wi.b->get_blob().map( diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index a923ede5c12..75fc4835638 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -7097,6 +7097,15 @@ TEST_P(DeferredWriteTest, NewData) { SetVal(g_conf(), "bluestore_min_alloc_size", stringify(t.min_alloc_size).c_str()); SetVal(g_conf(), "bluestore_max_blob_size", stringify(t.max_blob_size).c_str()); SetVal(g_conf(), "bluestore_prefer_deferred_size", stringify(t.prefer_deferred_size).c_str()); + // bluestore_prefer_deferred_size set to 0 is a special case + // when hdd-/ssd-specific settings applied. + // Need to adjust them as well if we want to have no deferred ops at all + // Fixes: https://tracker.ceph.com/issues/64443 + // + if (0 == t.prefer_deferred_size) { + SetVal(g_conf(), "bluestore_prefer_deferred_size_hdd", "0"); + SetVal(g_conf(), "bluestore_prefer_deferred_size_ssd", "0"); + } g_conf().apply_changes(nullptr); DeferredSetup();