From 8b8cb37de49a74ff7116975ff4603fbdf5575f7f Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Thu, 18 Jun 2020 15:40:43 +0200 Subject: [PATCH] crimson: make ThreadPool specific to AlienStore. Signed-off-by: Radoslaw Zarzynski --- src/crimson/CMakeLists.txt | 1 - src/crimson/os/alienstore/CMakeLists.txt | 3 ++- src/crimson/os/alienstore/alien_store.cc | 2 +- src/crimson/os/alienstore/alien_store.h | 4 ++-- .../ThreadPool.cc => os/alienstore/thread_pool.cc} | 6 +++--- .../ThreadPool.h => os/alienstore/thread_pool.h} | 4 ++-- src/test/crimson/CMakeLists.txt | 13 ++++++++----- ...hread_pool.cc => test_alienstore_thread_pool.cc} | 6 +++--- 8 files changed, 21 insertions(+), 18 deletions(-) rename src/crimson/{thread/ThreadPool.cc => os/alienstore/thread_pool.cc} (95%) rename src/crimson/{thread/ThreadPool.h => os/alienstore/thread_pool.h} (98%) rename src/test/crimson/{test_thread_pool.cc => test_alienstore_thread_pool.cc} (92%) diff --git a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt index e30aef360fe..f11718fdeb2 100644 --- a/src/crimson/CMakeLists.txt +++ b/src/crimson/CMakeLists.txt @@ -167,7 +167,6 @@ set(crimson_net_srcs net/ProtocolV2.cc net/chained_dispatchers.cc) set(crimson_thread_srcs - thread/ThreadPool.cc thread/Throttle.cc) add_library(crimson STATIC ${crimson_auth_srcs} diff --git a/src/crimson/os/alienstore/CMakeLists.txt b/src/crimson/os/alienstore/CMakeLists.txt index e3343d52d6f..f616dcc8190 100644 --- a/src/crimson/os/alienstore/CMakeLists.txt +++ b/src/crimson/os/alienstore/CMakeLists.txt @@ -1,6 +1,7 @@ include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/rocksdb/include") set(crimson_alien_srcs - alien_store.cc) + alien_store.cc + thread_pool.cc) list(APPEND crimson_alien_srcs ${PROJECT_SOURCE_DIR}/src/common/admin_socket.cc diff --git a/src/crimson/os/alienstore/alien_store.cc b/src/crimson/os/alienstore/alien_store.cc index 93105a64221..27395ae5caf 100644 --- a/src/crimson/os/alienstore/alien_store.cc +++ b/src/crimson/os/alienstore/alien_store.cc @@ -63,7 +63,7 @@ AlienStore::AlienStore(const std::string& path, const ConfigValues& values) g_ceph_context = cct.get(); cct->_conf.set_config_values(values); store = std::make_unique(cct.get(), path); - tp = std::make_unique(1, 128, seastar::this_shard_id() + 10); + tp = std::make_unique(1, 128, seastar::this_shard_id() + 10); } seastar::future<> AlienStore::start() diff --git a/src/crimson/os/alienstore/alien_store.h b/src/crimson/os/alienstore/alien_store.h index 3552274344c..f862d7b8409 100644 --- a/src/crimson/os/alienstore/alien_store.h +++ b/src/crimson/os/alienstore/alien_store.h @@ -10,9 +10,9 @@ #include "os/ObjectStore.h" #include "osd/osd_types.h" +#include "crimson/os/alienstore/thread_pool.h" #include "crimson/os/futurized_collection.h" #include "crimson/os/futurized_store.h" -#include "crimson/thread/ThreadPool.h" namespace ceph::os { class Transaction; @@ -38,7 +38,7 @@ public: ObjectMap::ObjectMapIterator iter; AlienStore* store; }; - mutable std::unique_ptr tp; + mutable std::unique_ptr tp; AlienStore(const std::string& path, const ConfigValues& values); ~AlienStore() final; diff --git a/src/crimson/thread/ThreadPool.cc b/src/crimson/os/alienstore/thread_pool.cc similarity index 95% rename from src/crimson/thread/ThreadPool.cc rename to src/crimson/os/alienstore/thread_pool.cc index 9914d8749f0..468c733bf21 100644 --- a/src/crimson/thread/ThreadPool.cc +++ b/src/crimson/os/alienstore/thread_pool.cc @@ -1,4 +1,4 @@ -#include "ThreadPool.h" +#include "thread_pool.h" #include #include @@ -9,7 +9,7 @@ using crimson::common::local_conf; -namespace crimson::thread { +namespace crimson::os { ThreadPool::ThreadPool(size_t n_threads, size_t queue_sz, @@ -76,4 +76,4 @@ seastar::future<> ThreadPool::stop() }); } -} // namespace crimson::thread +} // namespace crimson::os diff --git a/src/crimson/thread/ThreadPool.h b/src/crimson/os/alienstore/thread_pool.h similarity index 98% rename from src/crimson/thread/ThreadPool.h rename to src/crimson/os/alienstore/thread_pool.h index 91c08eab988..ec3e450a578 100644 --- a/src/crimson/thread/ThreadPool.h +++ b/src/crimson/os/alienstore/thread_pool.h @@ -14,7 +14,7 @@ #include #include -namespace crimson::thread { +namespace crimson::os { struct WorkItem { virtual ~WorkItem() {} @@ -128,4 +128,4 @@ public: } }; -} // namespace crimson::thread +} // namespace crimson::os diff --git a/src/test/crimson/CMakeLists.txt b/src/test/crimson/CMakeLists.txt index 6516a138797..eb1d0fd91c0 100644 --- a/src/test/crimson/CMakeLists.txt +++ b/src/test/crimson/CMakeLists.txt @@ -30,11 +30,14 @@ add_executable(unittest_async_echo test_async_echo.cc) target_link_libraries(unittest_async_echo ceph-common global) -add_executable(unittest_seastar_thread_pool - test_thread_pool.cc) -add_ceph_test(unittest_seastar_thread_pool - unittest_seastar_thread_pool --memory 256M --smp 1) -target_link_libraries(unittest_seastar_thread_pool crimson) +add_executable(unittest_seastar_alienstore_thread_pool + test_alienstore_thread_pool.cc) +add_ceph_test(unittest_seastar_alienstore_thread_pool + unittest_seastar_alienstore_thread_pool --memory 256M --smp 1) +target_link_libraries(unittest_seastar_alienstore_thread_pool + crimson + crimson-os + crimson-common) add_executable(unittest_seastar_config test_config.cc) diff --git a/src/test/crimson/test_thread_pool.cc b/src/test/crimson/test_alienstore_thread_pool.cc similarity index 92% rename from src/test/crimson/test_thread_pool.cc rename to src/test/crimson/test_alienstore_thread_pool.cc index 962470e3b69..82b98abbb60 100644 --- a/src/test/crimson/test_thread_pool.cc +++ b/src/test/crimson/test_alienstore_thread_pool.cc @@ -4,11 +4,11 @@ #include #include "common/ceph_argparse.h" #include "crimson/common/config_proxy.h" -#include "crimson/thread/ThreadPool.h" +#include "crimson/os/alienstore/thread_pool.h" #include "include/msgr.h" using namespace std::chrono_literals; -using ThreadPool = crimson::thread::ThreadPool; +using ThreadPool = crimson::os::ThreadPool; using crimson::common::local_conf; seastar::future<> test_accumulate(ThreadPool& tp) { @@ -50,7 +50,7 @@ int main(int argc, char** argv) .then([conf_file_list] { return local_conf().parse_config_files(conf_file_list); }).then([] { - return seastar::do_with(std::make_unique(2, 128, 0), + return seastar::do_with(std::make_unique(2, 128, 0), [](auto& tp) { return tp->start().then([&tp] { return test_accumulate(*tp); -- 2.39.5