Commit Graph

43 Commits

Author SHA1 Message Date
Jeff Moyer 0a14a80a5c io_uring: fix lost getsockopt completions
JIRA: https://issues.redhat.com/browse/RHEL-64867

commit 24dce1c538a7ceac43f2f97aae8dfd4bb93ea9b9
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Tue Jul 16 19:05:46 2024 +0100

    io_uring: fix lost getsockopt completions
    
    There is a report that iowq executed getsockopt never completes. The
    reason being that io_uring_cmd_sock() can return a positive result, and
    io_uring_cmd() propagates it back to core io_uring, instead of IOU_OK.
    In case of io_wq_submit_work(), the request will be dropped without
    completing it.
    
    The offending code was introduced by a hack in
    a9c3eda7eada9 ("io_uring: fix submission-failure handling for uring-cmd"),
    however it was fine until getsockopt was introduced and started
    returning positive results.
    
    The right solution is to always return IOU_OK, since
    e0b23d9953b0c ("io_uring: optimise ltimeout for inline execution"),
    we should be able to do it without problems, however for the sake of
    backporting and minimising side effects, let's keep returning negative
    return codes and otherwise do IOU_OK.
    
    Link: https://github.com/axboe/liburing/issues/1181
    Cc: stable@vger.kernel.org
    Fixes: 8e9fad0e70b7b ("io_uring: Add io_uring command support for sockets")
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Reviewed-by: Breno Leitao <leitao@debian.org>
    Link: https://lore.kernel.org/r/ff349cf0654018189b6077e85feed935f0f8839e.1721149870.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-12-02 11:14:48 -05:00
Jeff Moyer 69fe4f1180 io_uring: separate header for exported net bits
JIRA: https://issues.redhat.com/browse/RHEL-64867

commit 8c9a6f549e65912825e31dc1e0e3f7995984649d
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Tue Apr 9 14:05:53 2024 -0700

    io_uring: separate header for exported net bits
    
    We're exporting some io_uring bits to networking, e.g. for implementing
    a net callback for io_uring cmds, but we don't want to expose more than
    needed. Add a separate header for networking.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Signed-off-by: David Wei <dw@davidwei.uk>
    Link: https://lore.kernel.org/r/20240409210554.1878789-1-dw@davidwei.uk
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-11-28 17:20:44 -05:00
Jeff Moyer f1ebf01f03 io_uring/alloc_cache: switch to array based caching
JIRA: https://issues.redhat.com/browse/RHEL-64867

commit 414d0f45c316221acbf066658afdbae5b354a5cc
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed Mar 20 15:19:44 2024 -0600

    io_uring/alloc_cache: switch to array based caching
    
    Currently lists are being used to manage this, but best practice is
    usually to have these in an array instead as that it cheaper to manage.
    
    Outside of that detail, games are also played with KASAN as the list
    is inside the cached entry itself.
    
    Finally, all users of this need a struct io_cache_entry embedded in
    their struct, which is union'ized with something else in there that
    isn't used across the free -> realloc cycle.
    
    Get rid of all of that, and simply have it be an array. This will not
    change the memory used, as we're just trading an 8-byte member entry
    for the per-elem array size.
    
    This reduces the overhead of the recycled allocations, and it reduces
    the amount of code code needed to support recycling to about half of
    what it currently is.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-11-28 16:56:44 -05:00
Jeff Moyer 55fc2dbe3c io_uring/uring_cmd: defer SQE copying until it's needed
JIRA: https://issues.redhat.com/browse/RHEL-64867

commit 5eff57fa9f3aae3acbcaf196af507eec58955f3b
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed Mar 20 15:23:47 2024 -0600

    io_uring/uring_cmd: defer SQE copying until it's needed
    
    The previous commit turned on async data for uring_cmd, and did the
    basic conversion of setting everything up on the prep side. However, for
    a lot of use cases, -EIOCBQUEUED will get returned on issue, as the
    operation got successfully queued. For that case, a persistent SQE isn't
    needed, as it's just used for issue.
    
    Unless execution goes async immediately, defer copying the double SQE
    until it's necessary.
    
    This greatly reduces the overhead of such commands, as evidenced by
    a perf diff from before and after this change:
    
        10.60%     -8.58%  [kernel.vmlinux]  [k] io_uring_cmd_prep
    
    where the prep side drops from 10.60% to ~2%, which is more expected.
    Performance also rises from ~113M IOPS to ~122M IOPS, bringing us back
    to where it was before the async command prep.
    
    Tested-by: Anuj Gupta <anuj20.g@samsung.com>
    Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-11-28 16:54:44 -05:00
Jeff Moyer c22e5fd4b4 io_uring/uring_cmd: switch to always allocating async data
JIRA: https://issues.redhat.com/browse/RHEL-64867

commit d10f19dff56eac5ae44dc270336b18071a8bd51c
Author: Jens Axboe <axboe@kernel.dk>
Date:   Mon Mar 18 20:41:58 2024 -0600

    io_uring/uring_cmd: switch to always allocating async data
    
    Basic conversion ensuring async_data is allocated off the prep path. Adds
    a basic alloc cache as well, as passthrough IO can be quite high in rate.
    
    Tested-by: Anuj Gupta <anuj20.g@samsung.com>
    Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-11-28 16:53:44 -05:00
Jeff Moyer 539a8ed2d1 io_uring: remove struct io_tw_state::locked
JIRA: https://issues.redhat.com/browse/RHEL-64867

commit 8e5b3b89ecaf6d9295e561c225b35c574a5e0fe7
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Mon Mar 18 22:00:30 2024 +0000

    io_uring: remove struct io_tw_state::locked
    
    ctx is always locked for task_work now, so get rid of struct
    io_tw_state::locked. Note I'm stopping one step before removing
    io_tw_state altogether, which is not empty, because it still serves the
    purpose of indicating which function is a tw callback and forcing users
    not to invoke them carelessly out of a wrong context. The removal can
    always be done later.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Tested-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/e95e1ea116d0bfa54b656076e6a977bc221392a4.1710799188.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-11-28 16:28:44 -05:00
Jeff Moyer 8277b2cb1a io_uring: Don't include af_unix.h.
JIRA: https://issues.redhat.com/browse/RHEL-64867

commit 3fb1764c6b57808ddab7fe7c242fa04c2479ef0a
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Feb 12 15:42:36 2024 -0800

    io_uring: Don't include af_unix.h.
    
    Changes to AF_UNIX trigger rebuild of io_uring, but io_uring does
    not use AF_UNIX anymore.
    
    Let's not include af_unix.h and instead include necessary headers.
    
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://lore.kernel.org/r/20240212234236.63714-1-kuniyu@amazon.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-11-28 15:43:44 -05:00
Ming Lei 91b1ab8924 io_uring/cmd: fix tw <-> issue_flags conversion
JIRA: https://issues.redhat.com/browse/RHEL-56837

commit e1eef2e56cb0db143c731b1cdc220980256d2d99
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Mon Mar 18 22:00:25 2024 +0000

    io_uring/cmd: fix tw <-> issue_flags conversion

    !IO_URING_F_UNLOCKED does not translate to availability of the deferred
    completion infra, IO_URING_F_COMPLETE_DEFER does, that what we should
    pass and look for to use io_req_complete_defer() and other variants.

    Luckily, it's not a real problem as two wrongs actually made it right,
    at least as far as io_uring_cmd_work() goes.

    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Tested-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/aef76d34fe9410df8ecc42a14544fd76cd9d8b9e.1710799188.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Ming Lei <ming.lei@redhat.com>
2024-09-27 11:19:16 +08:00
Ming Lei 5cea7b30ef io_uring/cmd: kill one issue_flags to tw conversion
JIRA: https://issues.redhat.com/browse/RHEL-56837

commit 6edd953b6ec758c98e9dba7234634831f1f6510d
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Mon Mar 18 22:00:24 2024 +0000

    io_uring/cmd: kill one issue_flags to tw conversion

    io_uring cmd converts struct io_tw_state to issue_flags and later back
    to io_tw_state, it's awfully ill-fated, not to mention that intermediate
    issue_flags state is not correct.

    Get rid of the last conversion, drag through tw everything that came
    with IO_URING_F_UNLOCKED, and replace io_req_complete_defer() with a
    direct call to io_req_complete_defer(), at least for the time being.

    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Tested-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/c53fa3df749752bd058cf6f824a90704822d6bcc.1710799188.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Ming Lei <ming.lei@redhat.com>
2024-09-27 11:19:16 +08:00
Ming Lei b74c3e7b5b io_uring/cmd: move io_uring_try_cancel_uring_cmd()
JIRA: https://issues.redhat.com/browse/RHEL-56837

commit da12d9ab5889b87429d9375748dcd1485b6241f3
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Mon Mar 18 22:00:23 2024 +0000

    io_uring/cmd: move io_uring_try_cancel_uring_cmd()

    io_uring_try_cancel_uring_cmd() is a part of the cmd handling so let's
    move it closer to all cmd bits into uring_cmd.c

    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Tested-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/43a3937af4933655f0fd9362c381802f804f43de.1710799188.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Ming Lei <ming.lei@redhat.com>
2024-09-27 11:19:16 +08:00
Ming Lei 14b9b42500 io_uring: remove uring_cmd cookie
JIRA: https://issues.redhat.com/browse/RHEL-56837
Conflicts: context difference since uring cmd definition is moved to new
	header in 9.6

commit 8fadb86d4ced8b8349a3b227d6d66736ff150819
Author: Keith Busch <kbusch@kernel.org>
Date:   Thu Nov 30 13:53:09 2023 -0800

    io_uring: remove uring_cmd cookie

    No more users of this field.

    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Link: https://lore.kernel.org/r/20231130215309.2923568-5-kbusch@meta.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Ming Lei <ming.lei@redhat.com>
2024-09-27 08:38:51 +08:00
Jeff Moyer 57a330bf8f io_uring/cmd: inline io_uring_cmd_get_task
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit 055c15626a45b1ebc9f2f34981e705e1af171236
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Fri Dec 1 00:57:37 2023 +0000

    io_uring/cmd: inline io_uring_cmd_get_task
    
    With io_uring_types.h we see all required definitions to inline
    io_uring_cmd_get_task().
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/aa8e317f09e651a5f3e72f8c0ad3902084c1f930.1701391955.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 14:33:10 -04:00
Jeff Moyer 6d2191d720 io_uring/cmd: inline io_uring_cmd_do_in_task_lazy
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit 6b04a3737057ddfed396c954f9e4be4fe6d53c62
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Fri Dec 1 00:57:36 2023 +0000

    io_uring/cmd: inline io_uring_cmd_do_in_task_lazy
    
    Now as we can easily include io_uring_types.h, move IOU_F_TWQ_LAZY_WAKE
    and inline io_uring_cmd_do_in_task_lazy().
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/2ec9fb31dd192d1c5cf26d0a2dec5657d88a8e48.1701391955.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 14:32:10 -04:00
Jeff Moyer 5588b8ce85 io_uring: split out cmd api into a separate header
JIRA: https://issues.redhat.com/browse/RHEL-27755

Conflicts: I did not include the smack lsm change, since that did not
  apply cleanly and we do not support that lsm.  The ublk driver
  doesn't exist in RHEL, so that change was also dropped.

commit b66509b8497f2b002a2654e386a440f1274ddcc7
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Fri Dec 1 00:57:35 2023 +0000

    io_uring: split out cmd api into a separate header
    
    linux/io_uring.h is slowly becoming a rubbish bin where we put
    anything exposed to other subsystems. For instance, the task exit
    hooks and io_uring cmd infra are completely orthogonal and don't need
    each other's definitions. Start cleaning it up by splitting out all
    command bits into a new header file.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/7ec50bae6e21f371d3850796e716917fc141225a.1701391955.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 14:31:10 -04:00
Jeff Moyer f5aed3809c io_uring/cmd: Introduce SOCKET_URING_OP_SETSOCKOPT
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit 4232c6e349f3a591fd0f432e6b858d32095adce6
Author: Breno Leitao <leitao@debian.org>
Date:   Mon Oct 16 06:47:48 2023 -0700

    io_uring/cmd: Introduce SOCKET_URING_OP_SETSOCKOPT
    
    Add initial support for SOCKET_URING_OP_SETSOCKOPT. This new command is
    similar to setsockopt. This implementation leverages the function
    do_sock_setsockopt(), which is shared with the setsockopt() system call
    path.
    
    Important to say that userspace needs to keep the pointer's memory alive
    until the operation is completed. I.e, the memory could not be
    deallocated before the CQE is returned to userspace.
    
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
    Link: https://lore.kernel.org/r/20231016134750.1381153-11-leitao@debian.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 10:03:34 -04:00
Jeff Moyer cea8d26810 io_uring/cmd: Introduce SOCKET_URING_OP_GETSOCKOPT
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit a5d2f99aff6b6f9cd6a1ab6907d8be8066114791
Author: Breno Leitao <leitao@debian.org>
Date:   Mon Oct 16 06:47:47 2023 -0700

    io_uring/cmd: Introduce SOCKET_URING_OP_GETSOCKOPT
    
    Add support for getsockopt command (SOCKET_URING_OP_GETSOCKOPT), where
    level is SOL_SOCKET. This is leveraging the sockptr_t infrastructure,
    where a sockptr_t is either userspace or kernel space, and handled as
    such.
    
    Differently from the getsockopt(2), the optlen field is not a userspace
    pointers. In getsockopt(2), userspace provides optlen pointer, which is
    overwritten by the kernel.  In this implementation, userspace passes a
    u32, and the new value is returned in cqe->res. I.e., optlen is not a
    pointer.
    
    Important to say that userspace needs to keep the pointer alive until
    the CQE is completed.
    
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
    Link: https://lore.kernel.org/r/20231016134750.1381153-10-leitao@debian.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 10:02:34 -04:00
Jeff Moyer d4afabe2ea io_uring/cmd: return -EOPNOTSUPP if net is disabled
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit d2cac3ec823798861f8f39b4aa0ec960ffa997b0
Author: Breno Leitao <leitao@debian.org>
Date:   Mon Oct 16 06:47:46 2023 -0700

    io_uring/cmd: return -EOPNOTSUPP if net is disabled
    
    Protect io_uring_cmd_sock() to be called if CONFIG_NET is not set. If
    network is not enabled, but io_uring is, then we want to return
    -EOPNOTSUPP for any possible socket operation.
    
    This is helpful because io_uring_cmd_sock() can now call functions that
    only exits if CONFIG_NET is enabled without having #ifdef CONFIG_NET
    inside the function itself.
    
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Link: https://lore.kernel.org/r/20231016134750.1381153-9-leitao@debian.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 10:01:34 -04:00
Jeff Moyer b82dec29c6 io_uring/cmd: Pass compat mode in issue_flags
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit 5fea44a6e05b86bf49019fbbf2ab30098d03e0dc
Author: Breno Leitao <leitao@debian.org>
Date:   Mon Oct 16 06:47:43 2023 -0700

    io_uring/cmd: Pass compat mode in issue_flags
    
    Create a new flag to track if the operation is running compat mode.
    This basically check the context->compat and pass it to the issue_flags,
    so, it could be queried later in the callbacks.
    
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
    Link: https://lore.kernel.org/r/20231016134750.1381153-6-leitao@debian.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 09:58:34 -04:00
Jeff Moyer 1286392e22 io_uring: cancelable uring_cmd
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit 93b8cc60c37b9d17732b7a297e5dca29b50a990d
Author: Ming Lei <ming.lei@redhat.com>
Date:   Thu Sep 28 20:43:25 2023 +0800

    io_uring: cancelable uring_cmd
    
    uring_cmd may never complete, such as ublk, in which uring cmd isn't
    completed until one new block request is coming from ublk block device.
    
    Add cancelable uring_cmd to provide mechanism to driver for cancelling
    pending commands in its own way.
    
    Add API of io_uring_cmd_mark_cancelable() for driver to mark one command as
    cancelable, then io_uring will cancel this command in
    io_uring_cancel_generic(). ->uring_cmd() callback is reused for canceling
    command in driver's way, then driver gets notified with the cancelling
    from io_uring.
    
    Add API of io_uring_cmd_get_task() to help driver cancel handler
    deal with the canceling.
    
    Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
    Suggested-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 09:49:34 -04:00
Jeff Moyer 2079805724 io_uring: retain top 8bits of uring_cmd flags for kernel internal use
JIRA: https://issues.redhat.com/browse/RHEL-27755

commit 528ce6781726e022bc5dc84034360e6e8f1b89bd
Author: Ming Lei <ming.lei@redhat.com>
Date:   Thu Sep 28 20:43:24 2023 +0800

    io_uring: retain top 8bits of uring_cmd flags for kernel internal use
    
    Retain top 8bits of uring_cmd flags for kernel internal use, so that we
    can move IORING_URING_CMD_POLLED out of uapi header.
    
    Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
    Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-07-02 09:48:34 -04:00
Jeff Moyer 534050e15f io_uring/cmd: fix breakage in SOCKET_URING_OP_SIOC* implementation
JIRA: https://issues.redhat.com/browse/RHEL-21391

commit 1ba0e9d69b2000e95267c888cbfa91d823388d47
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Dec 14 21:34:08 2023 +0000

    io_uring/cmd: fix breakage in SOCKET_URING_OP_SIOC* implementation
    
            In 8e9fad0e70b7 "io_uring: Add io_uring command support for sockets"
    you've got an include of asm-generic/ioctls.h done in io_uring/uring_cmd.c.
    That had been done for the sake of this chunk -
    +               ret = prot->ioctl(sk, SIOCINQ, &arg);
    +               if (ret)
    +                       return ret;
    +               return arg;
    +       case SOCKET_URING_OP_SIOCOUTQ:
    +               ret = prot->ioctl(sk, SIOCOUTQ, &arg);
    
    SIOC{IN,OUT}Q are defined to symbols (FIONREAD and TIOCOUTQ) that come from
    ioctls.h, all right, but the values vary by the architecture.
    
    FIONREAD is
            0x467F on mips
            0x4004667F on alpha, powerpc and sparc
            0x8004667F on sh and xtensa
            0x541B everywhere else
    TIOCOUTQ is
            0x7472 on mips
            0x40047473 on alpha, powerpc and sparc
            0x80047473 on sh and xtensa
            0x5411 everywhere else
    
    ->ioctl() expects the same values it would've gotten from userland; all
    places where we compare with SIOC{IN,OUT}Q are using asm/ioctls.h, so
    they pick the correct values.  io_uring_cmd_sock(), OTOH, ends up
    passing the default ones.
    
    Fixes: 8e9fad0e70b7 ("io_uring: Add io_uring command support for sockets")
    Cc:  <stable@vger.kernel.org>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Link: https://lore.kernel.org/r/20231214213408.GT1674809@ZenIV
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2024-02-05 16:34:25 -05:00
Jeff Moyer fab40551d6 io_uring: simplify big_cqe handling
JIRA: https://issues.redhat.com/browse/RHEL-12076

commit b24c5d752962fa0970cd7e3d74b1cd0e843358de
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Thu Aug 24 23:53:25 2023 +0100

    io_uring: simplify big_cqe handling
    
    Don't keep big_cqe bits of req in a union with hash_node, find a
    separate space for it. It's bit safer, but also if we keep it always
    initialised, we can get rid of ugly REQ_F_CQE32_INIT handling.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/447aa1b2968978c99e655ba88db536e903df0fe9.1692916914.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 17:26:26 -04:00
Jeff Moyer 0970f7f058 io_uring: Add io_uring command support for sockets
JIRA: https://issues.redhat.com/browse/RHEL-12076

commit 8e9fad0e70b7b62848e0aeb1a873903b9ce4d7c4
Author: Breno Leitao <leitao@debian.org>
Date:   Tue Jun 27 06:44:24 2023 -0700

    io_uring: Add io_uring command support for sockets
    
    Enable io_uring commands on network sockets. Create two new
    SOCKET_URING_OP commands that will operate on sockets.
    
    In order to call ioctl on sockets, use the file_operations->io_uring_cmd
    callbacks, and map it to a uring socket function, which handles the
    SOCKET_URING_OP accordingly, and calls socket ioctls.
    
    This patches was tested by creating a new test case in liburing.
    Link: https://github.com/leitao/liburing/tree/io_uring_cmd
    
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Acked-by: Jakub Kicinski <kuba@kernel.org>
    Link: https://lore.kernel.org/r/20230627134424.2784797-1-leitao@debian.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 15:32:16 -04:00
Jeff Moyer 8b0cce7cf1 io_uring/cmd: add cmd lazy tw wake helper
JIRA: https://issues.redhat.com/browse/RHEL-12076

commit 5f3139fc46993b2d653a7aa5cdfe66a91881fd06
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Mon May 15 13:54:42 2023 +0100

    io_uring/cmd: add cmd lazy tw wake helper
    
    We want to use IOU_F_TWQ_LAZY_WAKE in commands. First, introduce a new
    cmd tw helper accepting TWQ flags, and then add
    io_uring_cmd_do_in_task_laz() that will pass IOU_F_TWQ_LAZY_WAKE and
    imply the "lazy" semantics, i.e. it posts no more than 1 CQE and
    delaying execution of this tw should not prevent forward progress.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/5b9f6716006df7e817f18bd555aee2f8f9c8b0c3.1684154817.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 15:31:54 -04:00
Jeff Moyer 8db55f6dd8 io_uring: Remove unnecessary BUILD_BUG_ON
JIRA: https://issues.redhat.com/browse/RHEL-12076

commit d2b7fa6174bc4260e496cbf84375c73636914641
Author: Breno Leitao <leitao@debian.org>
Date:   Thu May 4 05:18:56 2023 -0700

    io_uring: Remove unnecessary BUILD_BUG_ON
    
    In the io_uring_cmd_prep_async() there is an unnecessary compilation time
    check to check if cmd is correctly placed at field 48 of the SQE.
    
    This is unnecessary, since this check is already in place at
    io_uring_init():
    
              BUILD_BUG_SQE_ELEM(48, __u64,  addr3);
    
    Remove it and the uring_cmd_pdu_size() function, which is not used
    anymore.
    
    Keith started a discussion about this topic in the following thread:
    Link: https://lore.kernel.org/lkml/ZDBmQOhbyU0iLhMw@kbusch-mbp.dhcp.thefacebook.com/
    
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/20230504121856.904491-4-leitao@debian.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 15:31:35 -04:00
Jeff Moyer 0454a9fd14 io_uring: Pass whole sqe to commands
JIRA: https://issues.redhat.com/browse/RHEL-12076
Conflicts: RHEL does not yet support ublk, so this backport removes
  those changes from the patch.

commit fd9b8547bc5c34186dc42ea05fb4380d21695374
Author: Breno Leitao <leitao@debian.org>
Date:   Thu May 4 05:18:55 2023 -0700

    io_uring: Pass whole sqe to commands
    
    Currently uring CMD operation relies on having large SQEs, but future
    operations might want to use normal SQE.
    
    The io_uring_cmd currently only saves the payload (cmd) part of the SQE,
    but, for commands that use normal SQE size, it might be necessary to
    access the initial SQE fields outside of the payload/cmd block.  So,
    saves the whole SQE other than just the pdu.
    
    This changes slightly how the io_uring_cmd works, since the cmd
    structures and callbacks are not opaque to io_uring anymore. I.e, the
    callbacks can look at the SQE entries, not only, in the cmd structure.
    
    The main advantage is that we don't need to create custom structures for
    simple commands.
    
    Creates io_uring_sqe_cmd() that returns the cmd private data as a null
    pointer and avoids casting in the callee side.
    Also, make most of ublk_drv's sqe->cmd priv structure into const, and use
    io_uring_sqe_cmd() to get the private structure, removing the unwanted
    cast. (There is one case where the cast is still needed since the
    header->{len,addr} is updated in the private structure)
    
    Suggested-by: Pavel Begunkov <asml.silence@gmail.com>
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Reviewed-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/20230504121856.904491-3-leitao@debian.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 15:31:34 -04:00
Jeff Moyer eb03e25ffd io_uring/uring_cmd: take advantage of completion batching
JIRA: https://issues.redhat.com/browse/RHEL-12076

commit 27a67079c0e548d5c3232c40951517cfa630fe51
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed Apr 12 12:07:36 2023 -0600

    io_uring/uring_cmd: take advantage of completion batching
    
    We know now what the completion context is for the uring_cmd completion
    handling, so use that to have io_req_task_complete() decide what the
    best way to complete the request is. This allows batching of the posted
    completions if we have multiple pending, rather than always doing them
    one-by-one.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 15:31:31 -04:00
Jeff Moyer 92cafbf8c7 io_uring/uring_cmd: assign ioucmd->cmd at async prep time
JIRA: https://issues.redhat.com/browse/RHEL-12076

commit 758d5d64b619ddbbf96a5605d8d5a919aafaafab
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed Apr 5 08:21:45 2023 -0600

    io_uring/uring_cmd: assign ioucmd->cmd at async prep time
    
    Rather than check this in the fast path issue, it makes more sense to
    just assign the copy of the data when we're setting it up anyway. This
    makes the code a bit cleaner, and removes the need for this check in
    the issue path.
    
    Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
    Reviewed-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 15:31:31 -04:00
Jeff Moyer b39b11cefd io_uring: encapsulate task_work state
JIRA: https://issues.redhat.com/browse/RHEL-12076
Conflicts: We backported the -stable series fix for commit
  ef7dfac51d8e ("io_uring/poll: serialize poll linked timer start with
  poll removal"), which used a local "locked" variable instead of a
  struct io_tw_state.  This patch converts the code to the io_tw_state
  now that the infrastructure is in place for it.  Compare the results
  after applying this patch with the output of the following command
  run against an upstream kernel:
    git show ef7dfac51d8ed961b742218f526bd589f3900a59:io_uring/poll.c

commit a282967c848fb1d92c28334430c472da9c334e54
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Mon Mar 27 16:38:15 2023 +0100

    io_uring: encapsulate task_work state
    
    For task works we're passing around a bool pointer for whether the
    current ring is locked or not, let's wrap it in a structure, that
    will make it more opaque preventing abuse and will also help us
    to pass more info in the future if needed.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/1ecec9483d58696e248d1bfd52cf62b04442df1d.1679931367.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-11-02 15:31:29 -04:00
Jeff Moyer a732342d4a block/io_uring: pass in issue_flags for uring_cmd task_work handling
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237
Conflicts: RHEL does not have the ublk driver.

commit 9d2789ac9d60c049d26ef6d3005d9c94c5a559e9
Author: Jens Axboe <axboe@kernel.dk>
Date:   Mon Mar 20 20:01:25 2023 -0600

    block/io_uring: pass in issue_flags for uring_cmd task_work handling
    
    io_uring_cmd_done() currently assumes that the uring_lock is held
    when invoked, and while it generally is, this is not guaranteed.
    Pass in the issue_flags associated with it, so that we have
    IO_URING_F_UNLOCKED available to be able to lock the CQ ring
    appropriately when completing events.
    
    Cc: stable@vger.kernel.org
    Fixes: ee692a21e9bf ("fs,io_uring: add infrastructure for uring-cmd")
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:26:30 -04:00
Jeff Moyer 22719b397e io_uring/uring_cmd: ensure that device supports IOPOLL
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 03b3d6be73e81ddb7c2930d942cdd17f4cfd5ba5
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed Mar 8 09:26:13 2023 -0700

    io_uring/uring_cmd: ensure that device supports IOPOLL
    
    It's possible for a file type to support uring commands, but not
    pollable ones. Hence before issuing one of those, we should check
    that it is supported and error out upfront if it isn't.
    
    Cc: stable@vger.kernel.org
    Fixes: 5756a3a7e713 ("io_uring: add iopoll infrastructure for io_uring_cmd")
    Link: https://github.com/axboe/liburing/issues/816
    Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:26:16 -04:00
Jeff Moyer e20f6303b5 io_uring: iopoll protect complete_post
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 1bec951c3809051f64a6957fe86d1b4786cc0313
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Wed Nov 23 11:33:41 2022 +0000

    io_uring: iopoll protect complete_post
    
    io_req_complete_post() may be used by iopoll enabled rings, grab locks
    in this case. That requires to pass issue_flags to propagate the locking
    state.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/cc6d854065c57c838ca8e8806f707a226b70fd2d.1669203009.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:25:11 -04:00
Jeff Moyer 40ccc04153 io_uring: introduce fixed buffer support for io_uring_cmd
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 9cda70f622cdcf049521a9c2886e5fd8a90a0591
Author: Anuj Gupta <anuj20.g@samsung.com>
Date:   Fri Sep 30 11:57:39 2022 +0530

    io_uring: introduce fixed buffer support for io_uring_cmd
    
    Add IORING_URING_CMD_FIXED flag that is to be used for sending io_uring
    command with previously registered buffers. User-space passes the buffer
    index in sqe->buf_index, same as done in read/write variants that uses
    fixed buffers.
    
    Signed-off-by: Anuj Gupta <anuj20.g@samsung.com>
    Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
    Link: https://lore.kernel.org/r/20220930062749.152261-3-anuj20.g@samsung.com
    [axboe: shuffle valid flags check before acting on it]
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:24:03 -04:00
Jeff Moyer 926e98ee57 io_uring: add io_uring_cmd_import_fixed
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit a9216fac3ed8819cbbda5d39dd5fcaa43dfd35d8
Author: Anuj Gupta <anuj20.g@samsung.com>
Date:   Fri Sep 30 11:57:38 2022 +0530

    io_uring: add io_uring_cmd_import_fixed
    
    This is a new helper that callers can use to obtain a bvec iterator for
    the previously mapped buffer. This is preparatory work to enable
    fixed-buffer support for io_uring_cmd.
    
    Signed-off-by: Anuj Gupta <anuj20.g@samsung.com>
    Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
    Link: https://lore.kernel.org/r/20220930062749.152261-2-anuj20.g@samsung.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:24:03 -04:00
Jeff Moyer e92ce43ad3 io_uring: add iopoll infrastructure for io_uring_cmd
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 5756a3a7e713bcab705a5f0c810a2b1f7f4ecfaa
Author: Kanchan Joshi <joshi.k@samsung.com>
Date:   Tue Aug 23 21:44:41 2022 +0530

    io_uring: add iopoll infrastructure for io_uring_cmd
    
    Put this up in the same way as iopoll is done for regular read/write IO.
    Make place for storing a cookie into struct io_uring_cmd on submission.
    Perform the completion using the ->uring_cmd_iopoll handler.
    
    Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
    Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
    Link: https://lore.kernel.org/r/20220823161443.49436-3-joshi.k@samsung.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:23:47 -04:00
Jeff Moyer 71083c728f lsm,io_uring: add LSM hooks for the new uring_cmd file op
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 2a5840124009f133bd09fd855963551fb2cefe22
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Fri Jul 15 12:16:22 2022 -0700

    lsm,io_uring: add LSM hooks for the new uring_cmd file op
    
    io-uring cmd support was added through ee692a21e9bf ("fs,io_uring:
    add infrastructure for uring-cmd"), this extended the struct
    file_operations to allow a new command which each subsystem can use
    to enable command passthrough. Add an LSM specific for the command
    passthrough which enables LSMs to inspect the command details.
    
    This was discussed long ago without no clear pointer for something
    conclusive, so this enables LSMs to at least reject this new file
    operation.
    
    [0] https://lkml.kernel.org/r/8adf55db-7bab-f59d-d612-ed906b948d19@schaufler-ca.com
    
    Cc: stable@vger.kernel.org
    Fixes: ee692a21e9bf ("fs,io_uring: add infrastructure for uring-cmd")
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Acked-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Paul Moore <paul@paul-moore.com>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:22:56 -04:00
Jeff Moyer be70970f61 io_uring: fix submission-failure handling for uring-cmd
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit a9c3eda7eada94e8cf29cb102aa80e1370d8fa2e
Author: Kanchan Joshi <joshi.k@samsung.com>
Date:   Tue Aug 23 20:40:22 2022 +0530

    io_uring: fix submission-failure handling for uring-cmd
    
    If ->uring_cmd returned an error value different from -EAGAIN or
    -EIOCBQUEUED, it gets overridden with IOU_OK. This invites trouble
    as caller (io_uring core code) handles IOU_OK differently than other
    error codes.
    Fix this by returning the actual error code.
    
    Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:22:54 -04:00
Jeff Moyer 14facd41b0 io_uring: add missing BUILD_BUG_ON() checks for new io_uring_sqe fields
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 9c71d39aa0f40d4e6bfe14958045a42c722bd327
Author: Stefan Metzmacher <metze@samba.org>
Date:   Thu Aug 11 09:11:16 2022 +0200

    io_uring: add missing BUILD_BUG_ON() checks for new io_uring_sqe fields
    
    Signed-off-by: Stefan Metzmacher <metze@samba.org>
    Link: https://lore.kernel.org/r/ffcaf8dc4778db4af673822df60dbda6efdd3065.1660201408.git.metze@samba.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 08:44:02 -04:00
Jeff Moyer 95438cbb8c io_uring: make io_kiocb_to_cmd() typesafe
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit f2ccb5aed7bce1d8b3ed5b3385759a5509663028
Author: Stefan Metzmacher <metze@samba.org>
Date:   Thu Aug 11 09:11:15 2022 +0200

    io_uring: make io_kiocb_to_cmd() typesafe
    
    We need to make sure (at build time) that struct io_cmd_data is not
    casted to a structure that's larger.
    
    Signed-off-by: Stefan Metzmacher <metze@samba.org>
    Link: https://lore.kernel.org/r/c024cdf25ae19fc0319d4180e2298bade8ed17b8.1660201408.git.metze@samba.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 08:43:02 -04:00
Jeff Moyer 714e98423e io_uring: fix error handling for io_uring_cmd
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 3ed159c984079baedff740505d609badb8538e0d
Author: Anuj Gupta <anuj20.g@samsung.com>
Date:   Thu Aug 11 14:44:59 2022 +0530

    io_uring: fix error handling for io_uring_cmd
    
    Commit 97b388d70b53 ("io_uring: handle completions in the core") moved the
    error handling from handler to core. But for io_uring_cmd handler we end
    up completing more than once (both in handler and in core) leading to
    use_after_free.
    Change io_uring_cmd handler to avoid calling io_uring_cmd_done in case
    of error.
    
    Fixes: 97b388d70b53 ("io_uring: handle completions in the core")
    Signed-off-by: Anuj Gupta <anuj20.g@samsung.com>
    Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
    Link: https://lore.kernel.org/r/20220811091459.6929-1-anuj20.g@samsung.com
    [axboe: fix ret vs req typo]
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 08:41:02 -04:00
Jeff Moyer 0b2f91de71 io_uring: pass correct parameters to io_req_set_res
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit ff2557b7224ea9a19fb79eb4bd16d4deef57816a
Author: Ming Lei <ming.lei@redhat.com>
Date:   Wed Aug 3 20:07:57 2022 +0800

    io_uring: pass correct parameters to io_req_set_res
    
    The two parameters of 'res' and 'cflags' are swapped, so fix it.
    Without this fix, 'ublk del' hangs forever.
    
    Cc: Pavel Begunkov <asml.silence@gmail.com>
    Fixes: de23077eda61f ("io_uring: set completion results upfront")
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/20220803120757.1668278-1-ming.lei@redhat.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 08:36:02 -04:00
Jeff Moyer 8034d812f4 io_uring: kill extra io_uring_types.h includes
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 27a9d66fec77cff0e32d2ecd5d0ac7ef878a7bb0
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Thu Jun 16 13:57:18 2022 +0100

    io_uring: kill extra io_uring_types.h includes
    
    io_uring/io_uring.h already includes io_uring_types.h, no need to
    include it every time. Kill it in a bunch of places, it prepares us for
    following patches.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/94d8c943fbe0ef949981c508ddcee7fc1c18850f.1655384063.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 06:19:02 -04:00
Jeff Moyer dab07a0205 io_uring: move uring_cmd handling to its own file
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 99f15d8d61364299ae780cc739c74068a6d2538d
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed May 25 05:59:19 2022 -0600

    io_uring: move uring_cmd handling to its own file
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 05:22:02 -04:00