public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
From: Pavel Begunkov <asml.silence@gmail.com>
To: io-uring@vger.kernel.org, Vadim Fedorenko <vadim.fedorenko@linux.dev>
Cc: asml.silence@gmail.com, netdev@vger.kernel.org,
	Eric Dumazet <edumazet@google.com>,
	Kuniyuki Iwashima <kuniyu@amazon.com>,
	Paolo Abeni <pabeni@redhat.com>,
	Willem de Bruijn <willemb@google.com>,
	"David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Richard Cochran <richardcochran@gmail.com>,
	Stanislav Fomichev <sdf@fomichev.me>,
	Jason Xing <kerneljasonxing@gmail.com>
Subject: [PATCH v5 0/5] io_uring cmd for tx timestamps
Date: Mon, 16 Jun 2025 10:46:24 +0100	[thread overview]
Message-ID: <cover.1750065793.git.asml.silence@gmail.com> (raw)

Vadim Fedorenko suggested to add an alternative API for receiving
tx timestamps through io_uring. The series introduces io_uring socket
cmd for fetching tx timestamps, which is a polled multishot request,
i.e. internally polling the socket for POLLERR and posts timestamps
when they're arrives. For the API description see Patch 5.

It reuses existing timestamp infra and takes them from the socket's
error queue. For networking people the important parts are Patch 1,
and io_uring_cmd_timestamp() from Patch 5 walking the error queue.

It should be reasonable to take it through the io_uring tree once
we have consensus, but let me know if there are any concerns.


v5: return SOF_TIMESTAMPING_TX_* from net helpers

v4: rename uapi flags, etc.

v3: Add a flag to distinguish sw vs hw timestamp. skb_get_tx_timestamp()
    from Patch 1 now returns the indication of that, and in Patch 5
    it's converted into a io_uring CQE bit flag.

v2: remove (rx) false timestamp handling
    fix skipping already queued events on request submission
    constantize socket in a helper

Pavel Begunkov (5):
  net: timestamp: add helper returning skb's tx tstamp
  io_uring/poll: introduce io_arm_apoll()
  io_uring/cmd: allow multishot polled commands
  io_uring: add mshot helper for posting CQE32
  io_uring/netcmd: add tx timestamping cmd support

 include/net/sock.h            |  4 ++
 include/uapi/linux/io_uring.h | 16 +++++++
 io_uring/cmd_net.c            | 82 +++++++++++++++++++++++++++++++++++
 io_uring/io_uring.c           | 40 +++++++++++++++++
 io_uring/io_uring.h           |  1 +
 io_uring/poll.c               | 44 +++++++++++--------
 io_uring/poll.h               |  1 +
 io_uring/uring_cmd.c          | 34 +++++++++++++++
 io_uring/uring_cmd.h          |  7 +++
 net/socket.c                  | 46 ++++++++++++++++++++
 10 files changed, 258 insertions(+), 17 deletions(-)

-- 
2.49.0


             reply	other threads:[~2025-06-16  9:45 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-16  9:46 Pavel Begunkov [this message]
2025-06-16  9:46 ` [PATCH v5 1/5] net: timestamp: add helper returning skb's tx tstamp Pavel Begunkov
2025-06-16 14:53   ` Willem de Bruijn
2025-06-16 15:01   ` Willem de Bruijn
2025-06-16 16:37     ` Pavel Begunkov
2025-06-16 16:43       ` Willem de Bruijn
2025-06-17 16:30     ` Willem de Bruijn
2025-06-18  7:01   ` Jason Xing
2025-06-16  9:46 ` [PATCH v5 2/5] io_uring/poll: introduce io_arm_apoll() Pavel Begunkov
2025-06-16  9:46 ` [PATCH v5 3/5] io_uring/cmd: allow multishot polled commands Pavel Begunkov
2025-06-16  9:46 ` [PATCH v5 4/5] io_uring: add mshot helper for posting CQE32 Pavel Begunkov
2025-06-16  9:46 ` [PATCH v5 5/5] io_uring/netcmd: add tx timestamping cmd support Pavel Begunkov
2025-06-17 14:52 ` [PATCH v5 0/5] io_uring cmd for tx timestamps Jens Axboe
2025-06-17 22:29   ` Jakub Kicinski
2025-06-17 22:33     ` Jens Axboe
2025-06-17 22:41       ` Jakub Kicinski
2025-06-17 22:41         ` Jens Axboe
2025-06-20 14:31         ` Jens Axboe
2025-06-20 16:30           ` Pavel Begunkov
2025-06-20 19:46           ` Jakub Kicinski
2025-06-21  0:45             ` Jens Axboe
2025-06-23 15:00             ` Jens Axboe
2025-06-23 15:01 ` (subset) " Jens Axboe
2025-06-27 17:07   ` Jens Axboe
2025-06-28  6:10     ` Pavel Begunkov
2025-07-08 17:55       ` Jens Axboe
2025-07-08 18:00         ` Pavel Begunkov
2025-07-08 18:00           ` 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 \
    --in-reply-to=cover.1750065793.git.asml.silence@gmail.com \
    --to=asml.silence@gmail.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=io-uring@vger.kernel.org \
    --cc=kerneljasonxing@gmail.com \
    --cc=kuba@kernel.org \
    --cc=kuniyu@amazon.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=sdf@fomichev.me \
    --cc=vadim.fedorenko@linux.dev \
    --cc=willemb@google.com \
    /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