1. 22 Nov, 2022 2 commits
    • 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
  2. 21 Nov, 2022 19 commits
  3. 20 Nov, 2022 8 commits
  4. 19 Nov, 2022 8 commits
  5. 18 Nov, 2022 3 commits