From: Sage Weil Date: Fri, 3 Sep 2021 21:41:03 +0000 (-0500) Subject: os/bluestore: force prefer_deferred_size=0 for smr X-Git-Tag: v17.1.0~535^2~48 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6e3e53789927393f01d38eb61ce0db9672eb7174;p=ceph.git os/bluestore: force prefer_deferred_size=0 for smr Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 06adf8f55a9..bd22830f727 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -5266,10 +5266,15 @@ void BlueStore::_set_alloc_sizes(void) { max_alloc_size = cct->_conf->bluestore_max_alloc_size; +#ifdef HAVE_LIBZBD + ceph_assert(bdev); + if (bdev->is_smr()) { + prefer_deferred_size = 0; + } else +#endif if (cct->_conf->bluestore_prefer_deferred_size) { prefer_deferred_size = cct->_conf->bluestore_prefer_deferred_size; } else { - ceph_assert(bdev); if (_use_rotational_settings()) { prefer_deferred_size = cct->_conf->bluestore_prefer_deferred_size_hdd; } else { @@ -5280,7 +5285,6 @@ void BlueStore::_set_alloc_sizes(void) if (cct->_conf->bluestore_deferred_batch_ops) { deferred_batch_ops = cct->_conf->bluestore_deferred_batch_ops; } else { - ceph_assert(bdev); if (_use_rotational_settings()) { deferred_batch_ops = cct->_conf->bluestore_deferred_batch_ops_hdd; } else { @@ -5531,15 +5535,6 @@ int BlueStore::_create_alloc() #ifdef HAVE_LIBZBD if (freelist_type == "zoned") { allocator_type = "zoned"; - - // We don't want to defer writes with HM-SMR because it violates sequential - // write requirement. - if (prefer_deferred_size) { - dout(1) << __func__ << " The drive is HM-SMR but prefer_deferred_size is " - << prefer_deferred_size << ". " - << "Please set to 0." << dendl; - return -EINVAL; - } } #endif