Message ID | 20221124093559.3780686-1-dylany@meta.com (mailing list archive) |
---|---|
Headers | show |
Series | io_uring: batch multishot completions | expand |
On Thu, 24 Nov 2022 01:35:50 -0800, Dylan Yudaken wrote: > Multishot completions currently all go through io_post_aux_cqe which will > do a lock/unlock pair of the completion spinlock, and also possibly signal > an eventfd if registered. This can slow down applications that use these > features. > > This series allows the posted completions to be batched using the same > IO_URING_F_COMPLETE_DEFER as exists for non multishot completions. A > critical property of this is that all multishot completions must be > flushed to the CQ ring before the non-multishot completion (say an error) > or else ordering will break. This implies that if some completions were > deferred, then the rest must also be to keep that ordering. In order to do > this the first few patches move all the completion code into a simpler > path that defers completions when possible. > > [...] Applied, thanks! [1/9] io_uring: io_req_complete_post should defer if available commit: 8fa737e0de7d3c4dc3d7cb9a9d9a6362d872c3f3 [2/9] io_uring: always lock in io_apoll_task_func commit: ca23d244ec99cc1a7a1c91f6a25bb074ea00bff1 [3/9] io_uring: defer all io_req_complete_failed commit: d62208d1e2d73d9949c7c58518fbd915eacad102 [4/9] io_uring: allow defer completion for aux posted cqes commit: 8e003ae8505a7bb728cb158198ca88912818da70 [5/9] io_uring: add io_aux_cqe which allows deferred completion commit: 9101a50761cf126399014cbfa518804c75c64157 [6/9] io_uring: make io_fill_cqe_aux static commit: 84eca39b41bc03372d647db83319ec0f6c230cda [7/9] io_uring: add lockdep assertion in io_fill_cqe_aux commit: 3827133217eb3cdcb3824b22a31b76bf106a2ae3 [8/9] io_uring: remove overflow param from io_post_aux_cqe commit: 48ca51e666ed91f75a548a460faa60d08cfd3af6 [9/9] io_uring: allow multishot polled reqs to defer completion commit: 41d52216bb00504be5cf08e2d5ec8a41d16d9a67 Best regards,