1. 23 Nov, 2022 4 commits
  2. 22 Nov, 2022 4 commits
    • Jens Axboe's avatar
      io_uring: kill io_cqring_ev_posted() and __io_cq_unlock_post() · 6c16fe3c
      Jens Axboe authored
      __io_cq_unlock_post() is identical to io_cq_unlock_post(), and
      io_cqring_ev_posted() has a single caller so migth as well just inline
      it there.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      6c16fe3c
    • Jens Axboe's avatar
      Revert "io_uring: disallow self-propelled ring polling" · 4061f0ef
      Jens Axboe authored
      This reverts commit 7fdbc5f0.
      
      This patch dealt with a subset of the real problem, which is a potential
      circular dependency on the wakup path for io_uring itself. Outside of
      io_uring, eventfd can also trigger this (see details in 03e02acd)
      and so can epoll (see details in caf1aeaf). Now that we have a
      generic solution to this problem, get rid of the io_uring specific
      work-around.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4061f0ef
    • Jens Axboe's avatar
      io_uring: pass in EPOLL_URING_WAKE for eventfd signaling and wakeups · 44648532
      Jens Axboe authored
      Pass in EPOLL_URING_WAKE when signaling eventfd or doing poll related
      wakups, so that we can check for a circular event dependency between
      eventfd and epoll. If this flag is set when our wakeup handlers are
      called, then we know we have a dependency that needs to terminate
      multishot requests.
      
      eventfd and epoll are the only such possible dependencies.
      
      Cc: stable@vger.kernel.org # 6.0
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      44648532
    • Jens Axboe's avatar
      eventfd: provide a eventfd_signal_mask() helper · 03e02acd
      Jens Axboe authored
      This is identical to eventfd_signal(), but it allows the caller to pass
      in a mask to be used for the poll wakeup key. The use case is avoiding
      repeated multishot triggers if we have a dependency between eventfd and
      io_uring.
      
      If we setup an eventfd context and register that as the io_uring eventfd,
      and at the same time queue a multishot poll request for the eventfd
      context, then any CQE posted will repeatedly trigger the multishot request
      until it terminates when the CQ ring overflows.
      
      In preparation for io_uring detecting this circular dependency, add the
      mentioned helper so that io_uring can pass in EPOLL_URING as part of the
      poll wakeup key.
      
      Cc: stable@vger.kernel.org # 6.0
      [axboe: fold in !CONFIG_EVENTFD fix from Zhang Qilong]
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      03e02acd
  3. 21 Nov, 2022 19 commits
  4. 20 Nov, 2022 8 commits
  5. 19 Nov, 2022 5 commits