From: Yingxin Cheng Date: Thu, 25 May 2023 06:16:16 +0000 (+0800) Subject: crimson/tools/perf_crimson_msgr: support stop signal in server mode X-Git-Tag: v19.0.0~919^2~9 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=6d6043fa70c60e0e0d37c12fe3b05439246155f3;p=ceph.git crimson/tools/perf_crimson_msgr: support stop signal in server mode Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/tools/perf_crimson_msgr.cc b/src/crimson/tools/perf_crimson_msgr.cc index 676f0fddf63ee..f1e331f3176f3 100644 --- a/src/crimson/tools/perf_crimson_msgr.cc +++ b/src/crimson/tools/perf_crimson_msgr.cc @@ -12,6 +12,7 @@ #include #include #include +#include #include "common/ceph_time.h" #include "messages/MOSDOp.h" @@ -22,6 +23,7 @@ #include "crimson/net/Connection.h" #include "crimson/net/Dispatcher.h" #include "crimson/net/Messenger.h" +#include "crimson/osd/stop_signal.h" using namespace std; using namespace std::chrono_literals; @@ -227,13 +229,6 @@ static seastar::future<> run( }); } - seastar::future<> wait() { - return seastar::smp::submit_to(msgr_sid, [this] { - ceph_assert(msgr); - return msgr->wait(); - }); - } - static seastar::future create( seastar::shard_id msgr_sid, unsigned msg_len, @@ -870,13 +865,12 @@ static seastar::future<> run( ceph_assert(seastar::smp::count > server_conf.core); logger().info("\nperf settings:\n smp={}\n {}\n", seastar::smp::count, server_conf.str()); - return server->init(server_conf.addr - // dispatch ops - ).then([server] { - return server->wait(); - // shutdown - }).then([server, fp_server = std::move(fp_server)] () mutable { - return server->shutdown().then([cleanup = std::move(fp_server)] {}); + return seastar::async([server, server_conf, fp_server=std::move(fp_server)] { + // FIXME: SIGINT is not received by stop_signal + seastar_apps_lib::stop_signal should_stop; + server->init(server_conf.addr).get(); + should_stop.wait().get(); + server->shutdown().get(); }); } }).finally([] {