]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
blk/kernel/io_uring: bump liburing to v0.7
authorKefu Chai <kchai@redhat.com>
Thu, 5 Nov 2020 16:37:32 +0000 (00:37 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 5 Nov 2020 17:20:06 +0000 (01:20 +0800)
* use functions exposed by liburing instead of using syscalls
* v0.7 is the latest release at the time of writing, as liburing is under
  active development. it'd be better to use a newer release.
* also use https://git.kernel.dk/liburing instead of
  http://git.kernel.dk/liburing.

Signed-off-by: Kefu Chai <kchai@redhat.com>
cmake/modules/Builduring.cmake
src/blk/kernel/io_uring.cc

index d16e779a2f8d7b399a7177a9e95cf994e695a2e8..7ea95d1419e0c5e14863917f9619d6b84d6ca7ba 100644 (file)
@@ -4,8 +4,8 @@ function(build_uring)
 
   include(ExternalProject)
   ExternalProject_Add(liburing_ext
-    GIT_REPOSITORY http://git.kernel.dk/liburing
-    GIT_TAG "4e360f71131918c36774f51688e5c65dea8d43f2"
+    GIT_REPOSITORY https://git.kernel.dk/liburing
+    GIT_TAG "liburing-0.7"
     SOURCE_DIR ${CMAKE_BINARY_DIR}/src/liburing
     CONFIGURE_COMMAND <SOURCE_DIR>/configure
     BUILD_COMMAND env CC=${CMAKE_C_COMPILER} ${make_cmd} -C src -s
index e8b2140f8c8d9a614617535220563a926e00ecbb..f248d38197a8af021170be6793aa082185dea814 100644 (file)
@@ -134,7 +134,7 @@ int ioring_queue_t::init(std::vector<int> &fds)
   if (ret < 0)
     return ret;
 
-  ret = io_uring_register(d->io_uring.ring_fd, IORING_REGISTER_FILES,
+  ret = io_uring_register_files(&d->io_uring,
                          &fds[0], fds.size());
   if (ret < 0) {
     ret = -errno;
@@ -211,15 +211,12 @@ get_cqe:
 
 bool ioring_queue_t::supported()
 {
-  struct io_uring_params p;
-
-  memset(&p, 0, sizeof(p));
-  int fd = io_uring_setup(16, &p);
-  if (fd < 0)
+  struct io_uring ring;
+  int ret = io_uring_queue_init(16, &ring, 0);
+  if (ret) {
     return false;
-
-  close(fd);
-
+  }
+  io_uring_queue_exit(&ring);
   return true;
 }