From: Jakub Kicinski <kuba@kernel.org>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: "Köry Maincent" <kory.maincent@bootlin.com>,
"Florian Fainelli" <florian.fainelli@broadcom.com>,
"Broadcom internal kernel review list"
<bcm-kernel-feedback-list@broadcom.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Russell King" <linux@armlinux.org.uk>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Paolo Abeni" <pabeni@redhat.com>,
"Richard Cochran" <richardcochran@gmail.com>,
"Radu Pirea" <radu-nicolae.pirea@oss.nxp.com>,
"Jay Vosburgh" <j.vosburgh@gmail.com>,
"Andy Gospodarek" <andy@greyhouse.net>,
"Nicolas Ferre" <nicolas.ferre@microchip.com>,
"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
"Willem de Bruijn" <willemdebruijn.kernel@gmail.com>,
"Jonathan Corbet" <corbet@lwn.net>,
"Horatiu Vultur" <horatiu.vultur@microchip.com>,
UNGLinuxDriver@microchip.com, "Simon Horman" <horms@kernel.org>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org,
"Maxime Chevallier" <maxime.chevallier@bootlin.com>
Subject: Re: [PATCH net-next v7 15/16] net: ethtool: ts: Let the active time stamping layer be selectable
Date: Mon, 20 Nov 2023 11:58:39 -0800 [thread overview]
Message-ID: <20231120115839.74ee5492@kernel.org> (raw)
In-Reply-To: <20231120190023.ymog4yb2hcydhmua@skbuf>
On Mon, 20 Nov 2023 21:00:23 +0200 Vladimir Oltean wrote:
> Well, first of all, given my understanding of the "laws of physics",
> I think something has to give in your use case description. I can't
> see how on RX, the NIC can decide in advance whether to provide low
> rate MAC timestamps for packets going to a socket and high rate DMA
> timestamps for packets going to another socket. It can either provide
> MAC timestamps, or DMA timestamps, or an unreliable, unpresentable to
> user space, mix.
Rx time stamping is configured by filters. Is there a problem with user
specifying that they want "true" timestamps for PTP/NTP packets, and
"dma" timestamps for all the rest?
Maybe we can extend struct scm_timestamping to carry an indication
which stamp ended up in ts[2] but that's less important to me than
the ability to configure the thing. Right now, as I said, mlx5 uses
an ethtool priv flag :(
> But maybe I'm wrong and there are NICs which can do that filtering.
> If such NIC exists, then I guess a SOF_TIMESTAMPING_RX_DMA flag should
> be added to the socket layer, and the NIC driver provides timestamps
> according to the skb->sk->sk_tsflags, and that problem is completely out
> of scope for Köry's patch set - and implicitly compatible with it, since
> as you say, the device-wide timestamping layer - PHC index - does not
> really change.
IDK. Maybe the sniffles I picked up at LPC are clouding my judgment
but to me this patch set is shaped too much by current implementation
and not enough by what it's modeling. It basically exposes to user
space the "mux" for choosing NETDEV vs PHYLIB.
There are multiple time stamping points as the packet moves thru
the pipeline. Expose them so that SIOC[GS]HWTSTAMP can target each
on individually.
> If I'm not wrong and the MAC-or-DMA timestamp selection is NIC-wide
> (which diverges from your problem description),
Nope.
> then neither Köry's work
> nor my "everything is a phc_index" proposal will bring your use case to
> fruition without further work. Here I would avoid speculating, because a
> lot will depend upon the details which you haven't really given.
What are the details you'd like? PTP gets stamped at the PHY/MAC,
the rest gets stamped at DMA. mlx5 achieves this by splitting the
PTP traffic to a separate queue pair, and configuring that qp to
capture PHY/MAC stamps, AFAIU.
> One question will be whether, in the case of "NIC-wide DMA timestamps",
> DMA timestamps should be presented as hardware timestamps - struct
> scm_timestamping[2] from CMSG_DATA() - or as their own thing, that user
> space needs explicit support for - by parsing a new cmsg level/type.
> If DMA timestamps won't look to user space like hardware timestamps,
> then the use case is again out of scope for Köry's work, as far as I see
> it.
>
> Another simple question is - if NICs do this today - probably by giving
> the "unrepresentable mix" to user space in an implicit, hardcoded and
> very fine tuned way such that nobody bats an eye - then what is there
> more to support? Are you looking at extra UAPI as a way to legitimize
> hacks, or do you feel there is extra control that applications can gain?
I don't understand what you're asking me.
DMA timestamping is becoming increasingly important. Ready any
congestion control paper from the last 5 years and chances are
it will be using delay as a signal. If we're extending uAPI
for Hw stamping we should make sure to cater to CC use cases.
next prev parent reply other threads:[~2023-11-20 19:58 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-14 11:28 [PATCH net-next v7 00/16] net: Make timestamping selectable Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 01/16] net: Convert PHYs hwtstamp callback to use kernel_hwtstamp_config Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 02/16] net: phy: Remove the call to phy_mii_ioctl in phy_hwstamp_get/set Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 03/16] net: ethtool: Refactor identical get_ts_info implementations Köry Maincent
2023-11-14 11:28 ` [PATCH net-next v7 04/16] net: macb: Convert to ndo_hwtstamp_get() and ndo_hwtstamp_set() Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 05/16] net: Make dev_set_hwtstamp_phylib accessible Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 06/16] net: phy: micrel: fix ts_info value in case of no phc Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 07/16] net_tstamp: Add TIMESTAMPING SOFTWARE and HARDWARE mask Kory Maincent
2023-11-14 15:52 ` Willem de Bruijn
2023-11-19 2:22 ` Jakub Kicinski
2023-11-20 9:05 ` Köry Maincent
2023-11-20 16:48 ` Jakub Kicinski
2023-11-20 16:51 ` Willem de Bruijn
2023-11-14 11:28 ` [PATCH net-next v7 08/16] net: ethtool: Add a command to expose current time stamping layer Kory Maincent
2023-11-19 2:24 ` Jakub Kicinski
2023-11-20 9:17 ` Köry Maincent
2023-11-20 10:40 ` Köry Maincent
2023-11-14 11:28 ` [PATCH net-next v7 09/16] netlink: specs: Introduce new netlink command to get current timestamp Kory Maincent
2023-11-19 2:25 ` Jakub Kicinski
2023-11-14 11:28 ` [PATCH net-next v7 10/16] net: ethtool: Add a command to list available time stamping layers Kory Maincent
2023-11-19 2:26 ` Jakub Kicinski
2023-11-14 11:28 ` [PATCH net-next v7 11/16] netlink: specs: Introduce new netlink " Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 12/16] net: Replace hwtstamp_source by timestamping layer Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 13/16] net: Change the API of PHY default timestamp to MAC Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 14/16] net: ethtool: ts: Update GET_TS to reply the current selected timestamp Kory Maincent
2023-11-14 11:28 ` [PATCH net-next v7 15/16] net: ethtool: ts: Let the active time stamping layer be selectable Kory Maincent
2023-11-19 2:34 ` Jakub Kicinski
2023-11-20 9:44 ` Köry Maincent
2023-11-20 10:52 ` Vladimir Oltean
2023-11-20 11:14 ` Köry Maincent
2023-11-20 12:06 ` Vladimir Oltean
2023-11-20 13:49 ` Köry Maincent
2023-11-20 14:23 ` Vladimir Oltean
2023-11-20 14:53 ` Köry Maincent
2023-11-20 16:10 ` Vladimir Oltean
2023-11-20 17:17 ` Köry Maincent
2023-11-20 17:37 ` Jakub Kicinski
2023-11-20 18:39 ` Andrew Lunn
2023-11-20 18:51 ` Jakub Kicinski
2023-11-20 19:58 ` Vladimir Oltean
2023-11-20 21:45 ` Jakub Kicinski
2023-11-29 20:09 ` Köry Maincent
2023-11-29 20:37 ` Vladimir Oltean
2023-11-29 22:00 ` Köry Maincent
2023-11-29 23:56 ` Jakub Kicinski
2023-11-30 0:06 ` Rahul Rameshbabu
2023-11-20 19:09 ` Russell King (Oracle)
2023-11-20 19:00 ` Vladimir Oltean
2023-11-20 19:58 ` Jakub Kicinski [this message]
2023-11-20 21:17 ` Vladimir Oltean
2023-11-20 21:37 ` Jakub Kicinski
2023-11-20 22:05 ` Vladimir Oltean
2023-11-21 17:31 ` Köry Maincent
2023-11-21 17:43 ` Jakub Kicinski
2023-11-22 13:44 ` Köry Maincent
2023-11-22 14:08 ` Vladimir Oltean
2023-11-22 14:19 ` Vladimir Oltean
2023-11-22 14:36 ` Vladimir Oltean
2023-11-22 16:54 ` Jakub Kicinski
2023-11-22 16:59 ` Vladimir Oltean
2023-11-22 17:55 ` Jakub Kicinski
2023-11-22 18:11 ` Willem de Bruijn
2023-11-24 17:27 ` Vladimir Oltean
2023-11-24 19:45 ` Willem de Bruijn
2023-11-25 19:41 ` Richard Cochran
2023-11-22 14:57 ` Köry Maincent
2023-11-22 16:50 ` Jakub Kicinski
2023-11-22 16:55 ` Vladimir Oltean
2023-11-22 18:01 ` Jakub Kicinski
2023-11-23 15:00 ` Köry Maincent
2023-11-23 17:32 ` Jakub Kicinski
2023-11-24 15:43 ` Vladimir Oltean
2023-11-24 17:34 ` Köry Maincent
2023-11-24 19:57 ` Vladimir Oltean
2023-11-24 20:47 ` Willem de Bruijn
2023-11-21 23:40 ` Richard Cochran
2023-11-14 11:28 ` [PATCH net-next v7 16/16] netlink: specs: Introduce time stamping set command Kory Maincent
2023-11-18 15:10 ` [PATCH net-next v7 00/16] net: Make timestamping selectable patchwork-bot+netdevbpf
2023-11-19 2:35 ` Jakub Kicinski
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=20231120115839.74ee5492@kernel.org \
--to=kuba@kernel.org \
--cc=UNGLinuxDriver@microchip.com \
--cc=andrew@lunn.ch \
--cc=andy@greyhouse.net \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=florian.fainelli@broadcom.com \
--cc=hkallweit1@gmail.com \
--cc=horatiu.vultur@microchip.com \
--cc=horms@kernel.org \
--cc=j.vosburgh@gmail.com \
--cc=kory.maincent@bootlin.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maxime.chevallier@bootlin.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.com \
--cc=radu-nicolae.pirea@oss.nxp.com \
--cc=richardcochran@gmail.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=vladimir.oltean@nxp.com \
--cc=willemdebruijn.kernel@gmail.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;
as well as URLs for NNTP newsgroup(s).