]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd: use reactor::alien to send message to alien
authorKefu Chai <tchaikov@gmail.com>
Mon, 6 Sep 2021 16:31:27 +0000 (00:31 +0800)
committerKefu Chai <tchaikov@gmail.com>
Tue, 7 Sep 2021 13:39:14 +0000 (21:39 +0800)
simpler this way.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
src/crimson/os/alienstore/alien_store.cc
src/crimson/os/alienstore/alien_store.h
src/crimson/os/futurized_store.cc
src/crimson/os/futurized_store.h
src/crimson/osd/main.cc

index dc343b3401002c2588bc1199e31433ac98628857..c9dd14501d8a44dd26bc26cb62e72eb060c85666 100644 (file)
@@ -37,22 +37,20 @@ seastar::logger& logger()
 
 class OnCommit final: public Context
 {
-  seastar::alien::instance& alien;
   const int cpuid;
   Context *oncommit;
   seastar::promise<> &alien_done;
 public:
   OnCommit(
-    seastar::alien::instance& alien,
     int id,
     seastar::promise<> &done,
     Context *oncommit,
     ceph::os::Transaction& txn)
-    : alien(alien), cpuid(id), oncommit(oncommit),
+    : cpuid(id), oncommit(oncommit),
       alien_done(done) {}
 
   void finish(int) final {
-    return seastar::alien::submit_to(alien, cpuid, [this] {
+    return seastar::alien::submit_to(seastar::engine().alien(), cpuid, [this] {
       if (oncommit) {
         oncommit->complete(0);
       }
@@ -69,11 +67,9 @@ using crimson::common::get_conf;
 
 AlienStore::AlienStore(const std::string& type,
                        const std::string& path,
-                       const ConfigValues& values,
-                       seastar::alien::instance& alien)
+                       const ConfigValues& values)
   : type(type),
-    path{path},
-    alien{alien}
+    path{path}
 {
   cct = std::make_unique<CephContext>(CEPH_ENTITY_TYPE_OSD);
   g_ceph_context = cct.get();
@@ -430,8 +426,7 @@ seastar::future<> AlienStore::do_transaction(CollectionRef ch,
          assert(tp);
          return tp->submit(ch->get_cid().hash_to_shard(tp->size()),
            [this, ch, id, crimson_wrapper, &txn, &done] {
-           txn.register_on_commit(new OnCommit(alien,
-                                               id, done, crimson_wrapper,
+           txn.register_on_commit(new OnCommit(id, done, crimson_wrapper,
                                                txn));
            auto c = static_cast<AlienCollection*>(ch.get());
            return store->queue_transaction(c->collection, std::move(txn));
index aa0b53ace15b3a8224601f9f93c5a658158ed4a7..5f96d0658e3990362006b94f76daac1d64c6bbf5 100644 (file)
 #include "crimson/os/futurized_collection.h"
 #include "crimson/os/futurized_store.h"
 
-namespace seastar::alien {
-class instance;
-}
-
 namespace ceph::os {
 class Transaction;
 }
@@ -45,8 +41,7 @@ public:
   };
   AlienStore(const std::string& type,
              const std::string& path,
-             const ConfigValues& values,
-             seastar::alien::instance& alien);
+             const ConfigValues& values);
   ~AlienStore() final;
 
   seastar::future<> start() final;
@@ -131,7 +126,6 @@ private:
   mutable std::unique_ptr<crimson::os::ThreadPool> tp;
   const std::string type;
   const std::string path;
-  seastar::alien::instance& alien;
   uint64_t used_bytes = 0;
   std::unique_ptr<ObjectStore> store;
   std::unique_ptr<CephContext> cct;
index 90fb9de36d10102d14bf1b9529b893a924012911..ede82c0ac3961973fcb04b310ffb0011244ac46c 100644 (file)
@@ -8,8 +8,7 @@ namespace crimson::os {
 std::unique_ptr<FuturizedStore>
 FuturizedStore::create(const std::string& type,
                        const std::string& data,
-                       const ConfigValues& values,
-                       seastar::alien::instance& alien)
+                       const ConfigValues& values)
 {
   if (type == "cyanstore") {
     return std::make_unique<crimson::os::CyanStore>(data);
@@ -18,7 +17,7 @@ FuturizedStore::create(const std::string& type,
   } else {
     // use AlienStore as a fallback. It adapts e.g. BlueStore.
     return std::make_unique<crimson::os::AlienStore>(
-      type, data, values, alien);
+      type, data, values);
   }
 }
 
index 84ab35155e64ca734a5bde8755ebc9c83ac27d17..435b11067f4daf7bd89c295782ca659d8b4d121c 100644 (file)
 #include "include/uuid.h"
 #include "osd/osd_types.h"
 
-namespace seastar::alien {
-class instance;
-}
-
 namespace ceph::os {
 class Transaction;
 }
@@ -57,8 +53,7 @@ public:
 
   static std::unique_ptr<FuturizedStore> create(const std::string& type,
                                                 const std::string& data,
-                                                const ConfigValues& values,
-                                                seastar::alien::instance& alien);
+                                                const ConfigValues& values);
   FuturizedStore() = default;
   virtual ~FuturizedStore() = default;
 
index f48056ec9dfa2d89cfa16dd727c39adabe374ae8..799d8d13603961b8b4f53dd11d8d9ac39e839fc0 100644 (file)
@@ -307,8 +307,7 @@ int main(int argc, char* argv[])
           auto store = crimson::os::FuturizedStore::create(
             local_conf().get_val<std::string>("osd_objectstore"),
             local_conf().get_val<std::string>("osd_data"),
-            local_conf().get_config_values(),
-            app.alien());
+            local_conf().get_config_values());
 
           osd.start_single(whoami, nonce,
                            std::ref(*store),