From: Roman Penyaev Date: Thu, 21 Mar 2019 17:10:11 +0000 (+0100) Subject: os/bluestore: introduce new io_uring IO engine X-Git-Tag: v15.1.0~582^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2268be9ff9d2035c942f6a19779e254f317347ba;p=ceph.git os/bluestore: introduce new io_uring IO engine This implements low-level IO engine, which utilizes brand-new io_uring IO interface: https://lwn.net/Articles/776428/ By default libaio is used. If bluestore_ioring=true is set but kernel does not support io_uring or architecture is not x86-64, libaio will be used instead. In current patch liburing library is used in order not to open code everything. In order to compile with liburing WITH_LIBURING=ON should be specified. Signed-off-by: Roman Penyaev --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 49243d0670d..2fe35f0091a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,6 +186,10 @@ if(WITH_BLUESTORE) endif() include(CMakeDependentOption) +CMAKE_DEPENDENT_OPTION(WITH_LIBURING "Build with liburing library support" OFF + "WITH_BLUESTORE;HAVE_LIBAIO" OFF) +set(HAVE_LIBURING ${WITH_LIBURING}) + CMAKE_DEPENDENT_OPTION(WITH_BLUESTORE_PMEM "Enable PMDK libraries" OFF "WITH_BLUESTORE" OFF) diff --git a/src/common/options.cc b/src/common/options.cc index 3cd01fe8596..367877296ac 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -4624,6 +4624,10 @@ std::vector