From: Yingxin Cheng Date: Mon, 26 Jun 2023 08:49:36 +0000 (+0800) Subject: crimson/tools/perf_crimson_msgr: don't create client/server if not necessary X-Git-Tag: v18.2.1~129^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=782efd6afc7b3d81a7b19d7460867f5c04c12b0a;p=ceph.git crimson/tools/perf_crimson_msgr: don't create client/server if not necessary Signed-off-by: Yingxin Cheng (cherry picked from commit a07a02d0bc5e65bf9bd38aba3536c394450340aa) --- diff --git a/src/crimson/tools/perf_crimson_msgr.cc b/src/crimson/tools/perf_crimson_msgr.cc index 2ba7fe9799f2e..62b5aab80b694 100644 --- a/src/crimson/tools/perf_crimson_msgr.cc +++ b/src/crimson/tools/perf_crimson_msgr.cc @@ -1070,24 +1070,36 @@ static seastar::future<> run( server_needs_report = true; } return seastar::when_all( - create_sharded( - server_conf.core, - server_conf.block_size, - server_needs_report), - create_sharded( - 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(nullptr); + } else { + return create_sharded( + 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(nullptr); + } else { + return create_sharded( + 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());