]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/tools/perf_crimson_msgr: don't create client/server if not necessary
authorYingxin Cheng <yingxin.cheng@intel.com>
Mon, 26 Jun 2023 08:49:36 +0000 (16:49 +0800)
committerMatan Breizman <mbreizma@redhat.com>
Tue, 17 Oct 2023 16:18:42 +0000 (16:18 +0000)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit a07a02d0bc5e65bf9bd38aba3536c394450340aa)

src/crimson/tools/perf_crimson_msgr.cc

index 2ba7fe9799f2e527904e9b3ee0479d02247a2857..62b5aab80b6943254c54ee056697f905ba00238c 100644 (file)
@@ -1070,24 +1070,36 @@ static seastar::future<> run(
     server_needs_report = true;
   }
   return seastar::when_all(
-      create_sharded<test_state::Server>(
-        server_conf.core,
-        server_conf.block_size,
-        server_needs_report),
-      create_sharded<test_state::Client>(
-        client_conf.num_clients,
-        client_conf.num_conns,
-        client_conf.block_size,
-        client_conf.depth,
-        server_sid),
-      crimson::common::sharded_conf().start(
-        EntityName{}, std::string_view{"ceph"}
-      ).then([] {
-        return crimson::common::local_conf().start();
-      }).then([crc_enabled] {
-        return crimson::common::local_conf().set_val(
-            "ms_crc_data", crc_enabled ? "true" : "false");
-      })
+    seastar::futurize_invoke([mode, server_conf, server_needs_report] {
+      if (mode == perf_mode_t::client) {
+        return seastar::make_ready_future<test_state::Server*>(nullptr);
+      } else {
+        return create_sharded<test_state::Server>(
+          server_conf.core,
+          server_conf.block_size,
+          server_needs_report);
+      }
+    }),
+    seastar::futurize_invoke([mode, client_conf, server_sid] {
+      if (mode == perf_mode_t::server) {
+        return seastar::make_ready_future<test_state::Client*>(nullptr);
+      } else {
+        return create_sharded<test_state::Client>(
+          client_conf.num_clients,
+          client_conf.num_conns,
+          client_conf.block_size,
+          client_conf.depth,
+          server_sid);
+      }
+    }),
+    crimson::common::sharded_conf().start(
+      EntityName{}, std::string_view{"ceph"}
+    ).then([] {
+      return crimson::common::local_conf().start();
+    }).then([crc_enabled] {
+      return crimson::common::local_conf().set_val(
+          "ms_crc_data", crc_enabled ? "true" : "false");
+    })
   ).then([=](auto&& ret) {
     auto server = std::move(std::get<0>(ret).get0());
     auto client = std::move(std::get<1>(ret).get0());