• J
    io_uring: add support for IORING_OP_MSG_RING command · 4f57f06c
    Jens Axboe 提交于
    This adds support for IORING_OP_MSG_RING, which allows an SQE to signal
    another ring. That allows either waking up someone waiting on the ring,
    or even passing a 64-bit value via the user_data field in the CQE.
    
    sqe->fd must contain the fd of a ring that should receive the CQE.
    sqe->off will be propagated to the cqe->user_data on the target ring,
    and sqe->len will be propagated to cqe->res. The results CQE will have
    IORING_CQE_F_MSG set in its flags, to indicate that this CQE was generated
    from a messaging request rather than a SQE issued locally on that ring.
    This effectively allows passing a 64-bit and a 32-bit quantify between
    the two rings.
    
    This request type has the following request specific error cases:
    
    - -EBADFD. Set if the sqe->fd doesn't point to a file descriptor that is
      of the io_uring type.
    - -EOVERFLOW. Set if we were not able to deliver a request to the target
      ring.
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    4f57f06c
io_uring.c 286.0 KB