From 864c17e1e3e3ff004f01783b2fe0077f10313840 Mon Sep 17 00:00:00 2001 From: David Wei Date: Fri, 21 Feb 2025 13:32:09 -0800 Subject: [PATCH] IoUringBackend: refactor IoSqe::BackendCb to take io_uring_cqe directly Summary: Refactor only with no logic change. This will be needed in subsequent diffs that add a new queueRecvZc() method. Reviewed By: yfeldblum Differential Revision: D69950465 fbshipit-source-id: 761ca347249a675ff3a3fda0313062cb45cbca63 --- folly/io/async/IoUringBackend.cpp | 14 ++++---------- folly/io/async/IoUringBackend.h | 20 +++++++------------- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/folly/io/async/IoUringBackend.cpp b/folly/io/async/IoUringBackend.cpp index e0cb5164022..8f2e467f54a 100644 --- a/folly/io/async/IoUringBackend.cpp +++ b/folly/io/async/IoUringBackend.cpp @@ -508,23 +508,17 @@ FOLLY_ALWAYS_INLINE void IoUringBackend::setProcessSignals() { } void IoUringBackend::processPollIoSqe( - IoUringBackend* backend, IoSqe* ioSqe, int res, uint32_t flags) { - backend->processPollIo(ioSqe, res, flags); + IoUringBackend* backend, IoSqe* ioSqe, const io_uring_cqe* cqe) { + backend->processPollIo(ioSqe, cqe->res, cqe->flags); } void IoUringBackend::processTimerIoSqe( - IoUringBackend* backend, - IoSqe* /*sqe*/, - int /*res*/, - uint32_t /* flags */) { + IoUringBackend* backend, IoSqe* /*sqe*/, const io_uring_cqe* /*cqe*/) { backend->setProcessTimers(); } void IoUringBackend::processSignalReadIoSqe( - IoUringBackend* backend, - IoSqe* /*sqe*/, - int /*res*/, - uint32_t /* flags */) { + IoUringBackend* backend, IoSqe* /*sqe*/, const io_uring_cqe* /*cqe*/) { backend->setProcessSignals(); } diff --git a/folly/io/async/IoUringBackend.h b/folly/io/async/IoUringBackend.h index f4a1748b9de..880c3993585 100644 --- a/folly/io/async/IoUringBackend.h +++ b/folly/io/async/IoUringBackend.h @@ -496,17 +496,11 @@ class IoUringBackend : public EventBaseBackendBase { struct IoSqe; static void processPollIoSqe( - IoUringBackend* backend, IoSqe* ioSqe, int res, uint32_t flags); + IoUringBackend* backend, IoSqe* ioSqe, const io_uring_cqe* cqe); static void processTimerIoSqe( - IoUringBackend* backend, - IoSqe* /*sqe*/, - int /*res*/, - uint32_t /* flags */); + IoUringBackend* backend, IoSqe* /*sqe*/, const io_uring_cqe* /*cqe*/); static void processSignalReadIoSqe( - IoUringBackend* backend, - IoSqe* /*sqe*/, - int /*res*/, - uint32_t /* flags */); + IoUringBackend* backend, IoSqe* /*sqe*/, const io_uring_cqe* /*cqe*/); // signal handling void addSignalEvent(Event& event); @@ -556,7 +550,7 @@ class IoUringBackend : public EventBaseBackendBase { }; struct IoSqe : public IoSqeBase { - using BackendCb = void(IoUringBackend*, IoSqe*, int, uint32_t); + using BackendCb = void(IoUringBackend*, IoSqe*, const io_uring_cqe*); explicit IoSqe( IoUringBackend* backend = nullptr, bool poolAlloc = false, @@ -564,7 +558,7 @@ class IoUringBackend : public EventBaseBackendBase { : backend_(backend), poolAlloc_(poolAlloc), persist_(persist) {} void callback(const io_uring_cqe* cqe) noexcept override { - backendCb_(backend_, this, cqe->res, cqe->flags); + backendCb_(backend_, this, cqe); } void callbackCancelled(const io_uring_cqe*) noexcept override { release(); } virtual void release() noexcept; @@ -1093,8 +1087,8 @@ class IoUringBackend : public EventBaseBackendBase { void processFileOp(IoSqe* ioSqe, int res) noexcept; static void processFileOpCB( - IoUringBackend* backend, IoSqe* ioSqe, int res, uint32_t) { - static_cast(backend)->processFileOp(ioSqe, res); + IoUringBackend* backend, IoSqe* ioSqe, const io_uring_cqe* cqe) { + static_cast(backend)->processFileOp(ioSqe, cqe->res); } IoUringBackend::IoSqe* allocNewIoSqe(const EventCallback& /*cb*/) {