From: Sage Weil Date: Wed, 10 Oct 2018 17:58:33 +0000 (-0500) Subject: os/bluestore: {Mutex,Cond} -> ceph::{mutex,condition_variable} X-Git-Tag: v14.0.1~18^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=cead17faf7c507aa851a38527ee2e6b5f0818c87;p=ceph-ci.git os/bluestore: {Mutex,Cond} -> ceph::{mutex,condition_variable} Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index a70aa0eff38..2be713c06d8 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -3440,7 +3440,7 @@ void BlueStore::Collection::split_cache( void *BlueStore::MempoolThread::entry() { - Mutex::Locker l(lock); + std::unique_lock l(lock); std::list caches; caches.push_back(store->db); @@ -3485,9 +3485,9 @@ void *BlueStore::MempoolThread::entry() interval_stats_trim = false; store->_update_cache_logger(); - utime_t wait; - wait += store->cct->_conf->bluestore_cache_trim_interval; - cond.WaitInterval(lock, wait); + auto wait = ceph::make_timespan( + store->cct->_conf->bluestore_cache_trim_interval); + cond.wait_for(l, wait); } stop = false; return NULL; diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 938c3b39c06..c45ac8651f1 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -1974,8 +1974,8 @@ private: public: BlueStore *store; - Cond cond; - Mutex lock; + ceph::condition_variable cond; + ceph::mutex lock = ceph::make_mutex("BlueStore::MempoolThread::lock"); bool stop = false; uint64_t autotune_cache_size = 0; @@ -2077,7 +2077,6 @@ private: public: explicit MempoolThread(BlueStore *s) : store(s), - lock("BlueStore::MempoolThread::lock"), meta_cache(MetaCache(s)), data_cache(DataCache(s)) {} @@ -2087,10 +2086,10 @@ private: create("bstore_mempool"); } void shutdown() { - lock.Lock(); + lock.lock(); stop = true; - cond.Signal(); - lock.Unlock(); + cond.notify_all(); + lock.unlock(); join(); } diff --git a/src/os/bluestore/KernelDevice.cc b/src/os/bluestore/KernelDevice.cc index 243d0f6f8cd..999394e7eb3 100644 --- a/src/os/bluestore/KernelDevice.cc +++ b/src/os/bluestore/KernelDevice.cc @@ -37,7 +37,6 @@ KernelDevice::KernelDevice(CephContext* cct, aio_callback_t cb, void *cbpriv, ai fd_direct(-1), fd_buffered(-1), aio(false), dio(false), - debug_lock("KernelDevice::debug_lock"), aio_queue(cct->_conf->bdev_aio_max_queue_depth), discard_callback(d_cb), discard_callback_priv(d_cbpriv), @@ -576,7 +575,7 @@ void KernelDevice::_aio_log_start( dout(20) << __func__ << " 0x" << std::hex << offset << "~" << length << std::dec << dendl; if (cct->_conf->bdev_debug_inflight_ios) { - Mutex::Locker l(debug_lock); + std::lock_guard l(debug_lock); if (debug_inflight.intersects(offset, length)) { derr << __func__ << " inflight overlap of 0x" << std::hex @@ -619,7 +618,7 @@ void KernelDevice::_aio_log_finish( dout(20) << __func__ << " " << aio << " 0x" << std::hex << offset << "~" << length << std::dec << dendl; if (cct->_conf->bdev_debug_inflight_ios) { - Mutex::Locker l(debug_lock); + std::lock_guard l(debug_lock); debug_inflight.erase(offset, length); } } diff --git a/src/os/bluestore/KernelDevice.h b/src/os/bluestore/KernelDevice.h index 2e9463fcc63..229d5a8ad5a 100644 --- a/src/os/bluestore/KernelDevice.h +++ b/src/os/bluestore/KernelDevice.h @@ -19,8 +19,8 @@ #include "include/types.h" #include "include/interval_set.h" -#include "common/Mutex.h" -#include "common/Cond.h" +#include "common/Thread.h" +#include "include/utime.h" #include "aio.h" #include "BlockDevice.h" @@ -35,7 +35,7 @@ class KernelDevice : public BlockDevice { std::string devname; ///< kernel dev name (/sys/block/$devname), if any - Mutex debug_lock; + ceph::mutex debug_lock = ceph::make_mutex("KernelDevice::debug_lock"); interval_set debug_inflight; std::atomic io_since_flush = {false}; diff --git a/src/os/bluestore/NVMEDevice.cc b/src/os/bluestore/NVMEDevice.cc index aecadb6e8c4..19b91f7a6d1 100644 --- a/src/os/bluestore/NVMEDevice.cc +++ b/src/os/bluestore/NVMEDevice.cc @@ -481,7 +481,7 @@ class NVMEManager { }; private: - Mutex lock; + ceph::mutex lock = ceph::make_mutex("NVMEManager::lock"); bool init = false; std::vector shared_driver_datas; std::thread dpdk_thread; @@ -490,11 +490,10 @@ class NVMEManager { std::list probe_queue; public: - NVMEManager() - : lock("NVMEDevice::NVMEManager::lock") {} + NVMEManager() {} int try_get(const spdk_nvme_transport_id& trid, SharedDriverData **driver); void register_ctrlr(const spdk_nvme_transport_id& trid, spdk_nvme_ctrlr *c, SharedDriverData **driver) { - ceph_assert(lock.is_locked()); + ceph_assert(ceph_mutex_is_locked(lock)); spdk_nvme_ns *ns; int num_ns = spdk_nvme_ctrlr_get_num_ns(c); ceph_assert(num_ns >= 1); @@ -547,7 +546,7 @@ static void attach_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid, int NVMEManager::try_get(const spdk_nvme_transport_id& trid, SharedDriverData **driver) { - Mutex::Locker l(lock); + std::lock_guard l(lock); for (auto &&it : shared_driver_datas) { if (it->is_equal(trid)) { *driver = it; diff --git a/src/os/bluestore/NVMEDevice.h b/src/os/bluestore/NVMEDevice.h index 81911512ccf..b0eba9e57c5 100644 --- a/src/os/bluestore/NVMEDevice.h +++ b/src/os/bluestore/NVMEDevice.h @@ -27,8 +27,6 @@ #include "include/interval_set.h" #include "common/ceph_time.h" -#include "common/Mutex.h" -#include "common/Cond.h" #include "BlockDevice.h" enum class IOCommand { diff --git a/src/os/bluestore/PMEMDevice.cc b/src/os/bluestore/PMEMDevice.cc index a472751a393..5bfa44a9d98 100644 --- a/src/os/bluestore/PMEMDevice.cc +++ b/src/os/bluestore/PMEMDevice.cc @@ -36,7 +36,6 @@ PMEMDevice::PMEMDevice(CephContext *cct, aio_callback_t cb, void *cbpriv) : BlockDevice(cct, cb, cbpriv), fd(-1), addr(0), - debug_lock("PMEMDevice::debug_lock"), injecting_crash(0) { } diff --git a/src/os/bluestore/PMEMDevice.h b/src/os/bluestore/PMEMDevice.h index a0f869b866e..1d681668ae0 100644 --- a/src/os/bluestore/PMEMDevice.h +++ b/src/os/bluestore/PMEMDevice.h @@ -29,7 +29,7 @@ class PMEMDevice : public BlockDevice { char *addr; //the address of mmap std::string path; - Mutex debug_lock; + ceph::mutex debug_lock = ceph::make_mutex("PMEMDevice::debug_lock"); interval_set debug_inflight; std::atomic_int injecting_crash;