public inbox for [email protected]
 help / color / mirror / Atom feed
From: Pavel Begunkov <[email protected]>
To: [email protected]
Cc: Jens Axboe <[email protected]>, [email protected]
Subject: [PATCH v3 00/11] CQ waiting / task_work optimisations
Date: Mon,  9 Jan 2023 14:46:02 +0000	[thread overview]
Message-ID: <[email protected]> (raw)

For DEFER_TASKRUN rings replace CQ waitqueues with a custom implementation
based on the fact that only one task may be waiting for completions. Also,
improve deferred task running by removing one atomic in patch 11

Benchmarking QD1 with simulated tw arrival right after we start waiting:
7.5 MIOPS -> 9.3 (+23%), where half of CPU cycles goes to syscall overhead.

v2: remove merged cleanups and add new ones
    add 11/11 removing one extra atomic
    a small sync adjustment in 10/10
    add extra comments

Pavel Begunkov (11):
  io_uring: move submitter_task out of cold cacheline
  io_uring: refactor io_wake_function
  io_uring: don't set TASK_RUNNING in local tw runner
  io_uring: mark io_run_local_work static
  io_uring: move io_run_local_work_locked
  io_uring: separate wq for ring polling
  io_uring: add lazy poll_wq activation
  io_uring: wake up optimisations
  io_uring: waitqueue-less cq waiting
  io_uring: add io_req_local_work_add wake fast path
  io_uring: optimise deferred tw execution

 include/linux/io_uring_types.h |  15 +--
 io_uring/io_uring.c            | 161 ++++++++++++++++++++++++++-------
 io_uring/io_uring.h            |  28 ++----
 3 files changed, 144 insertions(+), 60 deletions(-)

-- 
2.38.1


             reply	other threads:[~2023-01-09 14:51 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-09 14:46 Pavel Begunkov [this message]
2023-01-09 14:46 ` [PATCH v3 01/11] io_uring: move submitter_task out of cold cacheline Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 02/11] io_uring: refactor io_wake_function Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 03/11] io_uring: don't set TASK_RUNNING in local tw runner Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 04/11] io_uring: mark io_run_local_work static Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 05/11] io_uring: move io_run_local_work_locked Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 06/11] io_uring: separate wq for ring polling Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 07/11] io_uring: add lazy poll_wq activation Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 08/11] io_uring: wake up optimisations Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 09/11] io_uring: waitqueue-less cq waiting Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 10/11] io_uring: add io_req_local_work_add wake fast path Pavel Begunkov
2023-01-09 14:46 ` [PATCH v3 11/11] io_uring: optimise deferred tw execution Pavel Begunkov
2023-01-11 18:00 ` [PATCH v3 00/11] CQ waiting / task_work optimisations Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox