* [PATCH for-next 0/5] random for-next patches
@ 2023-01-16 16:48 Pavel Begunkov
2023-01-16 16:48 ` [PATCH for-next 1/5] io_uring: return back links tw run optimisation Pavel Begunkov
` (5 more replies)
0 siblings, 6 replies; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 16:48 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, asml.silence
1/5 returns back an old lost optimisation
Others are small cleanups
Pavel Begunkov (5):
io_uring: return back links tw run optimisation
io_uring: don't export io_put_task()
io_uring: simplify fallback execution
io_uring: optimise ctx flags layout
io_uring: refactor __io_req_complete_post
include/linux/io_uring_types.h | 6 +++---
io_uring/io_uring.c | 34 ++++++++++++++++++++++------------
io_uring/io_uring.h | 10 ----------
3 files changed, 25 insertions(+), 25 deletions(-)
--
2.38.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 16:48 [PATCH for-next 0/5] random for-next patches Pavel Begunkov
@ 2023-01-16 16:48 ` Pavel Begunkov
2023-01-16 18:43 ` Jens Axboe
2023-01-16 16:48 ` [PATCH for-next 2/5] io_uring: don't export io_put_task() Pavel Begunkov
` (4 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 16:48 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, asml.silence
io_submit_flush_completions() may queue new requests for tw execution,
especially true for linked requests. Recheck the tw list for emptiness
after flushing completions.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
io_uring/io_uring.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 718f56baecbd..5570422dc2fb 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -1344,8 +1344,11 @@ static int __io_run_local_work(struct io_ring_ctx *ctx, bool *locked)
if (!llist_empty(&ctx->work_llist))
goto again;
- if (*locked)
+ if (*locked) {
io_submit_flush_completions(ctx);
+ if (!llist_empty(&ctx->work_llist))
+ goto again;
+ }
trace_io_uring_local_work_run(ctx, ret, loops);
return ret;
}
--
2.38.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH for-next 2/5] io_uring: don't export io_put_task()
2023-01-16 16:48 [PATCH for-next 0/5] random for-next patches Pavel Begunkov
2023-01-16 16:48 ` [PATCH for-next 1/5] io_uring: return back links tw run optimisation Pavel Begunkov
@ 2023-01-16 16:48 ` Pavel Begunkov
2023-01-16 16:48 ` [PATCH for-next 3/5] io_uring: simplify fallback execution Pavel Begunkov
` (3 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 16:48 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, asml.silence
io_put_task() is only used in uring.c so enclose it there together with
__io_put_task().
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
io_uring/io_uring.c | 11 ++++++++++-
io_uring/io_uring.h | 10 ----------
2 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 5570422dc2fb..1b72ff558c17 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -715,7 +715,7 @@ static void io_cqring_overflow_flush(struct io_ring_ctx *ctx)
io_cqring_do_overflow_flush(ctx);
}
-void __io_put_task(struct task_struct *task, int nr)
+static void __io_put_task(struct task_struct *task, int nr)
{
struct io_uring_task *tctx = task->io_uring;
@@ -725,6 +725,15 @@ void __io_put_task(struct task_struct *task, int nr)
put_task_struct_many(task, nr);
}
+/* must to be called somewhat shortly after putting a request */
+static inline void io_put_task(struct task_struct *task, int nr)
+{
+ if (likely(task == current))
+ task->io_uring->cached_refs += nr;
+ else
+ __io_put_task(task, nr);
+}
+
void io_task_refs_refill(struct io_uring_task *tctx)
{
unsigned int refill = -tctx->cached_refs + IO_TCTX_REFS_CACHE_NR;
diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h
index 5113e0ddb01d..c68edf9872a5 100644
--- a/io_uring/io_uring.h
+++ b/io_uring/io_uring.h
@@ -70,7 +70,6 @@ void io_wq_submit_work(struct io_wq_work *work);
void io_free_req(struct io_kiocb *req);
void io_queue_next(struct io_kiocb *req);
-void __io_put_task(struct task_struct *task, int nr);
void io_task_refs_refill(struct io_uring_task *tctx);
bool __io_alloc_req_refill(struct io_ring_ctx *ctx);
@@ -319,15 +318,6 @@ static inline void io_commit_cqring_flush(struct io_ring_ctx *ctx)
__io_commit_cqring_flush(ctx);
}
-/* must to be called somewhat shortly after putting a request */
-static inline void io_put_task(struct task_struct *task, int nr)
-{
- if (likely(task == current))
- task->io_uring->cached_refs += nr;
- else
- __io_put_task(task, nr);
-}
-
static inline void io_get_task_refs(int nr)
{
struct io_uring_task *tctx = current->io_uring;
--
2.38.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH for-next 3/5] io_uring: simplify fallback execution
2023-01-16 16:48 [PATCH for-next 0/5] random for-next patches Pavel Begunkov
2023-01-16 16:48 ` [PATCH for-next 1/5] io_uring: return back links tw run optimisation Pavel Begunkov
2023-01-16 16:48 ` [PATCH for-next 2/5] io_uring: don't export io_put_task() Pavel Begunkov
@ 2023-01-16 16:48 ` Pavel Begunkov
2023-01-16 16:49 ` [PATCH for-next 4/5] io_uring: optimise ctx flags layout Pavel Begunkov
` (2 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 16:48 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, asml.silence
Lock the ring with uring_lock in io_fallback_req_func(), which should
make it a bit safer and easier. With that we also don't need refs
pinning as io_ring_exit_work() will wait until uring_lock is freed.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
io_uring/io_uring.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 1b72ff558c17..e690c884dc95 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -245,17 +245,15 @@ static __cold void io_fallback_req_func(struct work_struct *work)
fallback_work.work);
struct llist_node *node = llist_del_all(&ctx->fallback_llist);
struct io_kiocb *req, *tmp;
- bool locked = false;
+ bool locked = true;
- percpu_ref_get(&ctx->refs);
+ mutex_lock(&ctx->uring_lock);
llist_for_each_entry_safe(req, tmp, node, io_task_work.node)
req->io_task_work.func(req, &locked);
-
- if (locked) {
- io_submit_flush_completions(ctx);
- mutex_unlock(&ctx->uring_lock);
- }
- percpu_ref_put(&ctx->refs);
+ if (WARN_ON_ONCE(!locked))
+ return;
+ io_submit_flush_completions(ctx);
+ mutex_unlock(&ctx->uring_lock);
}
static int io_alloc_hash_table(struct io_hash_table *table, unsigned bits)
--
2.38.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH for-next 4/5] io_uring: optimise ctx flags layout
2023-01-16 16:48 [PATCH for-next 0/5] random for-next patches Pavel Begunkov
` (2 preceding siblings ...)
2023-01-16 16:48 ` [PATCH for-next 3/5] io_uring: simplify fallback execution Pavel Begunkov
@ 2023-01-16 16:49 ` Pavel Begunkov
2023-01-16 16:49 ` [PATCH for-next 5/5] io_uring: refactor __io_req_complete_post Pavel Begunkov
2023-01-16 21:09 ` [PATCH for-next 0/5] random for-next patches Jens Axboe
5 siblings, 0 replies; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 16:49 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, asml.silence
There may be different cost for reeading just one byte or more, so it's
benificial to keep ctx flag bits that we access together in a single
byte. That affected code generation of __io_cq_unlock_post_flush() and
removed one memory load.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
include/linux/io_uring_types.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/io_uring_types.h b/include/linux/io_uring_types.h
index cc0cf0705b8f..0efe4d784358 100644
--- a/include/linux/io_uring_types.h
+++ b/include/linux/io_uring_types.h
@@ -196,17 +196,17 @@ struct io_ring_ctx {
/* const or read-mostly hot data */
struct {
unsigned int flags;
- unsigned int compat: 1;
unsigned int drain_next: 1;
unsigned int restricted: 1;
unsigned int off_timeout_used: 1;
unsigned int drain_active: 1;
- unsigned int drain_disabled: 1;
unsigned int has_evfd: 1;
- unsigned int syscall_iopoll: 1;
/* all CQEs should be posted only by the submitter task */
unsigned int task_complete: 1;
+ unsigned int syscall_iopoll: 1;
unsigned int poll_activated: 1;
+ unsigned int drain_disabled: 1;
+ unsigned int compat: 1;
enum task_work_notify_mode notify_method;
struct io_rings *rings;
--
2.38.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH for-next 5/5] io_uring: refactor __io_req_complete_post
2023-01-16 16:48 [PATCH for-next 0/5] random for-next patches Pavel Begunkov
` (3 preceding siblings ...)
2023-01-16 16:49 ` [PATCH for-next 4/5] io_uring: optimise ctx flags layout Pavel Begunkov
@ 2023-01-16 16:49 ` Pavel Begunkov
2023-01-16 21:09 ` [PATCH for-next 0/5] random for-next patches Jens Axboe
5 siblings, 0 replies; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 16:49 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, asml.silence
Keep parts of __io_req_complete_post() relying on req->flags together so
the value can be cached.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
io_uring/io_uring.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index e690c884dc95..27d9abd24a83 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -974,14 +974,14 @@ static void __io_req_complete_post(struct io_kiocb *req)
req->link = NULL;
}
}
+ io_put_kbuf_comp(req);
+ io_dismantle_req(req);
io_req_put_rsrc(req);
/*
* Selected buffer deallocation in io_clean_op() assumes that
* we don't hold ->completion_lock. Clean them here to avoid
* deadlocks.
*/
- io_put_kbuf_comp(req);
- io_dismantle_req(req);
io_put_task(req->task, 1);
wq_list_add_head(&req->comp_list, &ctx->locked_free_list);
ctx->locked_free_nr++;
--
2.38.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 16:48 ` [PATCH for-next 1/5] io_uring: return back links tw run optimisation Pavel Begunkov
@ 2023-01-16 18:43 ` Jens Axboe
2023-01-16 19:47 ` Pavel Begunkov
0 siblings, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2023-01-16 18:43 UTC (permalink / raw)
To: Pavel Begunkov, io-uring
On 1/16/23 9:48 AM, Pavel Begunkov wrote:
> io_submit_flush_completions() may queue new requests for tw execution,
> especially true for linked requests. Recheck the tw list for emptiness
> after flushing completions.
Did you check when it got lost? Would be nice to add a Fixes link?
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 18:43 ` Jens Axboe
@ 2023-01-16 19:47 ` Pavel Begunkov
2023-01-16 21:04 ` Jens Axboe
0 siblings, 1 reply; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 19:47 UTC (permalink / raw)
To: Jens Axboe, io-uring
On 1/16/23 18:43, Jens Axboe wrote:
> On 1/16/23 9:48 AM, Pavel Begunkov wrote:
>> io_submit_flush_completions() may queue new requests for tw execution,
>> especially true for linked requests. Recheck the tw list for emptiness
>> after flushing completions.
>
> Did you check when it got lost? Would be nice to add a Fixes link?
fwiw, not fan of putting a "Fixes" tag on sth that is not a fix.
Looks like the optimisation was there for normal task_work, then
disappeared in f88262e60bb9c ("io_uring: lockless task list").
DEFERRED_TASKRUN came later and this patch handles exclusively
deferred tw. I probably need to send a patch for normal tw as well.
--
Pavel Begunkov
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 19:47 ` Pavel Begunkov
@ 2023-01-16 21:04 ` Jens Axboe
2023-01-16 21:14 ` Pavel Begunkov
2023-01-16 21:15 ` Pavel Begunkov
0 siblings, 2 replies; 14+ messages in thread
From: Jens Axboe @ 2023-01-16 21:04 UTC (permalink / raw)
To: Pavel Begunkov, io-uring
On 1/16/23 12:47 PM, Pavel Begunkov wrote:
> On 1/16/23 18:43, Jens Axboe wrote:
>> On 1/16/23 9:48 AM, Pavel Begunkov wrote:
>>> io_submit_flush_completions() may queue new requests for tw execution,
>>> especially true for linked requests. Recheck the tw list for emptiness
>>> after flushing completions.
>>
>> Did you check when it got lost? Would be nice to add a Fixes link?
>
> fwiw, not fan of putting a "Fixes" tag on sth that is not a fix.
I'm not either as it isn't fully descriptive, but it is better than
not having that reference imho.
> Looks like the optimisation was there for normal task_work, then
> disappeared in f88262e60bb9c ("io_uring: lockless task list").
> DEFERRED_TASKRUN came later and this patch handles exclusively
> deferred tw. I probably need to send a patch for normal tw as well.
So maybe just use that commit? I can make a note in the message on
how it relates.
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 0/5] random for-next patches
2023-01-16 16:48 [PATCH for-next 0/5] random for-next patches Pavel Begunkov
` (4 preceding siblings ...)
2023-01-16 16:49 ` [PATCH for-next 5/5] io_uring: refactor __io_req_complete_post Pavel Begunkov
@ 2023-01-16 21:09 ` Jens Axboe
5 siblings, 0 replies; 14+ messages in thread
From: Jens Axboe @ 2023-01-16 21:09 UTC (permalink / raw)
To: io-uring, Pavel Begunkov
On Mon, 16 Jan 2023 16:48:56 +0000, Pavel Begunkov wrote:
> 1/5 returns back an old lost optimisation
> Others are small cleanups
>
> Pavel Begunkov (5):
> io_uring: return back links tw run optimisation
> io_uring: don't export io_put_task()
> io_uring: simplify fallback execution
> io_uring: optimise ctx flags layout
> io_uring: refactor __io_req_complete_post
>
> [...]
Applied, thanks!
[1/5] io_uring: return back links tw run optimisation
commit: b48f4ef033089cf03c28bb09ae054dbfdf11635a
[2/5] io_uring: don't export io_put_task()
commit: 41cc377f69cc1702d989c33eccbacd845d463c72
[3/5] io_uring: simplify fallback execution
commit: ae96a39a7537ab49b9fb497e7c5e860ffc6fde72
[4/5] io_uring: optimise ctx flags layout
commit: 4a26869e3c95ee20d03b178e413a619928a84d26
[5/5] io_uring: refactor __io_req_complete_post
commit: 2c5c148670c650381bce849e164757ab6a2729be
Best regards,
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 21:04 ` Jens Axboe
@ 2023-01-16 21:14 ` Pavel Begunkov
2023-01-16 21:17 ` Jens Axboe
2023-01-16 21:15 ` Pavel Begunkov
1 sibling, 1 reply; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 21:14 UTC (permalink / raw)
To: Jens Axboe, io-uring
On 1/16/23 21:04, Jens Axboe wrote:
> On 1/16/23 12:47 PM, Pavel Begunkov wrote:
>> On 1/16/23 18:43, Jens Axboe wrote:
>>> On 1/16/23 9:48 AM, Pavel Begunkov wrote:
>>>> io_submit_flush_completions() may queue new requests for tw execution,
>>>> especially true for linked requests. Recheck the tw list for emptiness
>>>> after flushing completions.
>>>
>>> Did you check when it got lost? Would be nice to add a Fixes link?
>>
>> fwiw, not fan of putting a "Fixes" tag on sth that is not a fix.
>
> I'm not either as it isn't fully descriptive, but it is better than
> not having that reference imho.
Agree, but it's also not great that it might be tried to be
backported. Maybe adding a link would be nicer?
Link: https://lore.kernel.org/r/20220622134028.2013417-4-dylany@fb.com
>> Looks like the optimisation was there for normal task_work, then
>> disappeared in f88262e60bb9c ("io_uring: lockless task list").
>> DEFERRED_TASKRUN came later and this patch handles exclusively
>> deferred tw. I probably need to send a patch for normal tw as well.
>
> So maybe just use that commit? I can make a note in the message on
> how it relates.
--
Pavel Begunkov
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 21:04 ` Jens Axboe
2023-01-16 21:14 ` Pavel Begunkov
@ 2023-01-16 21:15 ` Pavel Begunkov
2023-01-16 21:18 ` Jens Axboe
1 sibling, 1 reply; 14+ messages in thread
From: Pavel Begunkov @ 2023-01-16 21:15 UTC (permalink / raw)
To: Jens Axboe, io-uring
On 1/16/23 21:04, Jens Axboe wrote:
> On 1/16/23 12:47 PM, Pavel Begunkov wrote:
>> On 1/16/23 18:43, Jens Axboe wrote:
>>> On 1/16/23 9:48 AM, Pavel Begunkov wrote:
>>>> io_submit_flush_completions() may queue new requests for tw execution,
>>>> especially true for linked requests. Recheck the tw list for emptiness
>>>> after flushing completions.
>>>
>>> Did you check when it got lost? Would be nice to add a Fixes link?
>>
>> fwiw, not fan of putting a "Fixes" tag on sth that is not a fix.
>
> I'm not either as it isn't fully descriptive, but it is better than
> not having that reference imho.
>
>> Looks like the optimisation was there for normal task_work, then
>> disappeared in f88262e60bb9c ("io_uring: lockless task list").
>> DEFERRED_TASKRUN came later and this patch handles exclusively
>> deferred tw. I probably need to send a patch for normal tw as well.
>
> So maybe just use that commit? I can make a note in the message on
> how it relates.
Yes please, thanks
--
Pavel Begunkov
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 21:14 ` Pavel Begunkov
@ 2023-01-16 21:17 ` Jens Axboe
0 siblings, 0 replies; 14+ messages in thread
From: Jens Axboe @ 2023-01-16 21:17 UTC (permalink / raw)
To: Pavel Begunkov, io-uring
On 1/16/23 2:14 PM, Pavel Begunkov wrote:
> On 1/16/23 21:04, Jens Axboe wrote:
>> On 1/16/23 12:47 PM, Pavel Begunkov wrote:
>>> On 1/16/23 18:43, Jens Axboe wrote:
>>>> On 1/16/23 9:48 AM, Pavel Begunkov wrote:
>>>>> io_submit_flush_completions() may queue new requests for tw execution,
>>>>> especially true for linked requests. Recheck the tw list for emptiness
>>>>> after flushing completions.
>>>>
>>>> Did you check when it got lost? Would be nice to add a Fixes link?
>>>
>>> fwiw, not fan of putting a "Fixes" tag on sth that is not a fix.
>>
>> I'm not either as it isn't fully descriptive, but it is better than
>> not having that reference imho.
>
> Agree, but it's also not great that it might be tried to be
> backported. Maybe adding a link would be nicer?
>
> Link: https://lore.kernel.org/r/20220622134028.2013417-4-dylany@fb.com
Only the auto-select bot would pick it, but I'm guessing it'll fail
and that'll be the end of that. Normal stable additions need a
cc stable as well, the fixes is not enough to trigger that.
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH for-next 1/5] io_uring: return back links tw run optimisation
2023-01-16 21:15 ` Pavel Begunkov
@ 2023-01-16 21:18 ` Jens Axboe
0 siblings, 0 replies; 14+ messages in thread
From: Jens Axboe @ 2023-01-16 21:18 UTC (permalink / raw)
To: Pavel Begunkov, io-uring
On 1/16/23 2:15 PM, Pavel Begunkov wrote:
> On 1/16/23 21:04, Jens Axboe wrote:
>> On 1/16/23 12:47 PM, Pavel Begunkov wrote:
>>> On 1/16/23 18:43, Jens Axboe wrote:
>>>> On 1/16/23 9:48 AM, Pavel Begunkov wrote:
>>>>> io_submit_flush_completions() may queue new requests for tw execution,
>>>>> especially true for linked requests. Recheck the tw list for emptiness
>>>>> after flushing completions.
>>>>
>>>> Did you check when it got lost? Would be nice to add a Fixes link?
>>>
>>> fwiw, not fan of putting a "Fixes" tag on sth that is not a fix.
>>
>> I'm not either as it isn't fully descriptive, but it is better than
>> not having that reference imho.
>>
>>> Looks like the optimisation was there for normal task_work, then
>>> disappeared in f88262e60bb9c ("io_uring: lockless task list").
>>> DEFERRED_TASKRUN came later and this patch handles exclusively
>>> deferred tw. I probably need to send a patch for normal tw as well.
>>
>> So maybe just use that commit? I can make a note in the message on
>> how it relates.
>
> Yes please, thanks
Done:
https://git.kernel.dk/cgit/linux-block/commit/?h=for-6.3/io_uring&id=b48f4ef033089cf03c28bb09ae054dbfdf11635a
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-01-16 21:18 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-16 16:48 [PATCH for-next 0/5] random for-next patches Pavel Begunkov
2023-01-16 16:48 ` [PATCH for-next 1/5] io_uring: return back links tw run optimisation Pavel Begunkov
2023-01-16 18:43 ` Jens Axboe
2023-01-16 19:47 ` Pavel Begunkov
2023-01-16 21:04 ` Jens Axboe
2023-01-16 21:14 ` Pavel Begunkov
2023-01-16 21:17 ` Jens Axboe
2023-01-16 21:15 ` Pavel Begunkov
2023-01-16 21:18 ` Jens Axboe
2023-01-16 16:48 ` [PATCH for-next 2/5] io_uring: don't export io_put_task() Pavel Begunkov
2023-01-16 16:48 ` [PATCH for-next 3/5] io_uring: simplify fallback execution Pavel Begunkov
2023-01-16 16:49 ` [PATCH for-next 4/5] io_uring: optimise ctx flags layout Pavel Begunkov
2023-01-16 16:49 ` [PATCH for-next 5/5] io_uring: refactor __io_req_complete_post Pavel Begunkov
2023-01-16 21:09 ` [PATCH for-next 0/5] random for-next patches Jens Axboe
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.