Commit Graph

8 Commits

Author SHA1 Message Date
Jeff Moyer 9eebec651f io_uring: simplify __io_uring_add_tctx_node
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 97c96e9fa36616d7890a6f3438172fc501927f01
Author: Dylan Yudaken <dylany@fb.com>
Date:   Mon Sep 26 10:09:26 2022 -0700

    io_uring: simplify __io_uring_add_tctx_node
    
    Remove submitter parameter from __io_uring_add_tctx_node.
    
    It was only called from one place, and we can do that logic in that one
    place.
    
    Signed-off-by: Dylan Yudaken <dylany@fb.com>
    Fixes: 97bbdc06a444 ("io_uring: add IORING_SETUP_SINGLE_ISSUER")
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-05-05 15:24:05 -04:00
Jeff Moyer bdb19ee025 io_uring: export io_put_task()
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit e70cb60893ca64b7df06864aa16c1cf6d6c671db
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Tue Jul 12 21:52:37 2022 +0100

    io_uring: export io_put_task()
    
    Make io_put_task() available to non-core parts of io_uring, we'll need
    it for notification infrastructure.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/3686807d4c03b72e389947b0e8692d4d44334ef0.1657643355.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 08:15:02 -04:00
Jeff Moyer 848a6e305f io_uring: lockless task list
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit f88262e60bb9cb5740891672ce9f405e7f9393e5
Author: Dylan Yudaken <dylany@fb.com>
Date:   Wed Jun 22 06:40:23 2022 -0700

    io_uring: lockless task list
    
    With networking use cases we see contention on the spinlock used to
    protect the task_list when multiple threads try and add completions at once.
    Instead we can use a lockless list, and assume that the first caller to
    add to the list is responsible for kicking off task work.
    
    Signed-off-by: Dylan Yudaken <dylany@fb.com>
    Link: https://lore.kernel.org/r/20220622134028.2013417-4-dylany@fb.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 06:43:02 -04:00
Jeff Moyer 31c630fab4 io_uring: remove priority tw list optimisation
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit ed5ccb3beeba0cadb0fcf353ae192021dfecf252
Author: Dylan Yudaken <dylany@fb.com>
Date:   Wed Jun 22 06:40:21 2022 -0700

    io_uring: remove priority tw list optimisation
    
    This optimisation has some built in assumptions that make it easy to
    introduce bugs. It also does not have clear wins that make it worth keeping.
    
    Signed-off-by: Dylan Yudaken <dylany@fb.com>
    Link: https://lore.kernel.org/r/20220622134028.2013417-2-dylany@fb.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 06:41:02 -04:00
Jeff Moyer 50ecd32bb2 io_uring: optimize io_uring_task layout
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 4a0fef62788b69df09267c8e3f3f11d4bb9d50e7
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Mon Jun 20 15:27:35 2022 +0100

    io_uring: optimize io_uring_task layout
    
    task_work bits of io_uring_task are split into two cache lines causing
    extra cache bouncing, place them into a separate cache line. Also move
    the most used submission path fields closer together, so there are hot.
    
    Cc: stable@vger.kernel.org # 5.15+
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 06:37:02 -04:00
Jeff Moyer 5d310513cd io_uring: add IORING_SETUP_SINGLE_ISSUER
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 97bbdc06a4446bc69d8ba71d722abae542a6b70c
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Thu Jun 16 10:22:08 2022 +0100

    io_uring: add IORING_SETUP_SINGLE_ISSUER
    
    Add a new IORING_SETUP_SINGLE_ISSUER flag and the userspace visible part
    of it, i.e. put limitations of submitters. Also, don't allow it together
    with IOPOLL as we're not going to put it to good use.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/4bcc41ee467fdf04c8aab8baf6ce3ba21858c3d4.1655371007.git.asml.silence@gmail.com
    Reviewed-by: Hao Xu <howeyxu@tencent.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 06:07:02 -04:00
Jeff Moyer 84a0d1c1f2 io_uring: inline ->registered_rings
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit 6a02e4be8187588ac476136496af9e3feeeb9a75
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Wed Jun 15 17:33:53 2022 +0100

    io_uring: inline ->registered_rings
    
    There can be only 16 registered rings, no need to allocate an array for
    them separately but store it in tctx.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/495f0b953c87994dd9e13de2134019054fa5830d.1655310733.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
2023-04-29 05:51:02 -04:00
Jeff Moyer 6eeafa199e io_uring: move io_uring_task (tctx) helpers into its own file
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2068237

commit c9f06aa7de153cdbe424e7e38be39f2272cf78bc
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed May 25 11:01:04 2022 -0600

    io_uring: move io_uring_task (tctx) helpers into its own file
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

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