From: Matan Breizman Date: Mon, 9 Feb 2026 14:46:12 +0000 (+0000) Subject: common/options/crimson.yaml.in: allow seastar to select available backend X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=db874660231e59d36a7b013274fe8478a597ba32;p=ceph.git common/options/crimson.yaml.in: allow seastar to select available backend * If non backend is selected, let seastar choose the default reactor backend (io_uring, if available). * If a backend is selected, don't implicitly fallback to diffrent one. Updated the conf option and moved to "Reactor options" section. Signed-off-by: Matan Breizman --- diff --git a/src/common/options/crimson.yaml.in b/src/common/options/crimson.yaml.in index cda3e47d345..c046d204e75 100644 --- a/src/common/options/crimson.yaml.in +++ b/src/common/options/crimson.yaml.in @@ -28,22 +28,25 @@ options: min: 0 max: 32 +# Reactor options: + - name: crimson_reactor_backend type: str level: advanced - default: linux-aio + default: enum_values: - - linux-aio - io_uring + - linux-aio - epoll - desc: Select the seastar reactor IO backend to use for the crimson - long_desc: The backend is chosen during OSD bootup and determines how asynchrnous disk I/O - is performed. + desc: Select which Seastar's internal reactor implementation + long_desc: Controls which asynchronous I/O engine the Seastar reactor will use + during OSD startup. Different backends have different + performance characteristics and require different kernel capabilities. + Note, If none is non is selected, let seastar choose. + flags: - startup -# Reactor options: - - name: crimson_reactor_task_quota_ms type: float level: advanced diff --git a/src/crimson/osd/main_config_bootstrap_helpers.cc b/src/crimson/osd/main_config_bootstrap_helpers.cc index 1781fd978aa..07e9910dee0 100644 --- a/src/crimson/osd/main_config_bootstrap_helpers.cc +++ b/src/crimson/osd/main_config_bootstrap_helpers.cc @@ -204,20 +204,6 @@ _get_early_config(int argc, const char *argv[]) } } } - if (auto found = std::find_if( - std::begin(ret.early_args), - std::end(ret.early_args), - [](auto& arg) { return arg == "--reactor-backend"; }); - found == std::end(ret.early_args)) { - auto backend = crimson::common::get_conf("crimson_reactor_backend"); - #ifndef SEASTAR_IO_URING - if (backend == "io_uring") { - ceph_abort_msgf("reactor_backend=io_uring requested but build " - "does not support io_uring"); - } - #endif - } - if (auto found = std::find_if( std::begin(early_args), std::end(early_args),