* 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 <mbreizma@redhat.com>
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
}
}
}
- 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<std::string>("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),