All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: Horatiu Vultur <horatiu.vultur@microchip.com>
Cc: "Michael Walle" <michael@walle.cc>,
	"Köry Maincent" <kory.maincent@bootlin.com>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	netdev@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-omap@vger.kernel.org,
	"Maxime Chevallier" <maxime.chevallier@bootlin.com>,
	"Richard Cochran" <richardcochran@gmail.com>,
	thomas.petazzoni@bootlin.com,
	"Russell King" <linux@armlinux.org.uk>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Jay Vosburgh" <j.vosburgh@gmail.com>,
	"Veaceslav Falico" <vfalico@gmail.com>,
	"Andy Gospodarek" <andy@greyhouse.net>,
	"Claudiu Manoil" <claudiu.manoil@nxp.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	UNGLinuxDriver@microchip.com,
	"Minghao Chi" <chi.minghao@zte.com.cn>,
	"Jie Wang" <wangjie125@huawei.com>,
	"Oleksij Rempel" <linux@rempel-privat.de>,
	"Sean Anderson" <sean.anderson@seco.com>,
	"Gustavo A. R. Silva" <gustavoars@kernel.org>,
	"Wolfram Sang" <wsa+renesas@sang-engineering.com>,
	"Alexander Lobakin" <alexandr.lobakin@intel.com>,
	"Marco Bonelli" <marco@mebeim.net>
Subject: Re: [PATCH v3 3/5] net: Let the active time stamping layer be selectable.
Date: Fri, 10 Mar 2023 18:44:51 +0200	[thread overview]
Message-ID: <20230310164451.ls7bbs6pdzs4m6pw@skbuf> (raw)
In-Reply-To: <20230310131529.6bahmi4obryy5dsx@soft-dev3-1>

On Fri, Mar 10, 2023 at 02:15:29PM +0100, Horatiu Vultur wrote:
> I was thinking about another scenario (I am sorry if this was already
> discussed).
> Currently when setting up to do the timestamp, the MAC will check if the
> PHY has timestamping support if that is the case the PHY will do the
> timestamping. So in case the switch was supposed to be a TC then we had
> to make sure that the HW was setting up some rules not to forward PTP
> frames by HW but to copy these frames to CPU.
> With this new implementation, this would not be possible anymore as the
> MAC will not be notified when doing the timestamping in the PHY.
> Does it mean that now the switch should allocate these rules at start
> time?

I would say no (to the allocation of trapping rules at startup time).
It was argued before by people present in this thread that it should be
possible (and default behavior) for switches to forward PTP frames as if
they were PTP-unaware:
https://patchwork.ozlabs.org/project/netdev/patch/20190813025214.18601-5-yangbo.lu@nxp.com/

But it raises a really good point about how much care a switch driver
needs to take, such that with PTP timestamping, it must trap but not
timestamp the PTP frames.

There is a huge amount of variability here today.

The ocelot driver would be broken with PHY timestamping, since it would
flood the PTP messages (it installs the traps only if it is responsible
for taking the timestamps too).

The lan966x driver is very fine-tuned to call lan966x_ptp_setup_traps()
regardless of what phy_has_hwtstamp() says.

The sparx5 driver doesn't even seem to install traps at all (unclear if
they are predefined in hardware or not).

I guess that we want something like lan966x to keep working, since it
sounds like it's making the sanest decision about what to do.

But, as you point out, with Köry's/Richard's proposal, the MAC driver
will be bypassed when the selected timestamping layer is the PHY, and
that's a problem currently.

May I suggest the following? There was another RFC which proposed the
introduction of a netdev notifier when timestamping is turned on/off:
https://lore.kernel.org/netdev/20220317225035.3475538-1-vladimir.oltean@nxp.com/

It didn't go beyond RFC status, because I started doing what Jakub
suggested (converting the raw ioctls handlers to NDOs) but quickly got
absolutely swamped into the whole mess.

If we have a notifier, then we can make switch drivers do things
differently. They can activate timestamping per se in the timestamping
NDO (which is only called when the MAC is the active timestamping layer),
and they can activate PTP traps in the netdev notifier (which is called
any time a timestamping status change takes place - the notifier info
should contain details about which net_device and timestamping layer
this is, for example).

It's just a proposal of how to create an alternative notification path
that doesn't disturb the goals of this patch set.

  parent reply	other threads:[~2023-03-10 16:48 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-08 13:59 [PATCH v3 0/5] net: Make MAC/PHY time stamping selectable Köry Maincent
2023-03-08 13:59 ` [PATCH v3 1/5] net: ethtool: Refactor identical get_ts_info implementations Köry Maincent
2023-03-08 13:59 ` [PATCH v3 2/5] net: Expose available time stamping layers to user space Köry Maincent
2023-03-08 22:54   ` Vladimir Oltean
2023-03-08 13:59 ` [PATCH v3 3/5] net: Let the active time stamping layer be selectable Köry Maincent
2023-03-08 15:28   ` Willem de Bruijn
2023-03-10 14:41     ` Köry Maincent
2023-03-10 14:59       ` Willem de Bruijn
2023-03-10 15:32         ` Andrew Lunn
2023-03-08 18:26   ` kernel test robot
2023-03-08 23:03   ` Vladimir Oltean
2023-03-10 10:48     ` Köry Maincent
2023-03-10 11:35       ` Vladimir Oltean
2023-03-10 12:15         ` Michael Walle
2023-03-10 13:15           ` Horatiu Vultur
2023-03-10 13:34             ` Michael Walle
2023-03-10 14:04               ` Köry Maincent
2023-03-10 15:05                 ` Richard Cochran
2023-03-10 15:24                 ` Andrew Lunn
2023-03-10 16:06               ` Vladimir Oltean
2023-03-10 20:48                 ` Michael Walle
2023-03-10 16:44             ` Vladimir Oltean [this message]
2023-03-13  8:17               ` Horatiu Vultur
2023-03-13  8:40               ` Oleksij Rempel
2023-03-14 11:02                 ` Köry Maincent
2023-03-16 15:09                 ` Köry Maincent
2023-03-17 15:21                   ` Vladimir Oltean
2023-03-17 19:07                     ` Jakub Kicinski
2023-03-17 19:43                       ` Max Georgiev
2023-03-30 12:38                         ` Köry Maincent
2023-03-30 16:26                           ` Jakub Kicinski
2023-03-31  5:05                             ` Max Georgiev
2023-03-31  5:07                               ` Max Georgiev
2023-04-02 17:12                           ` Vladimir Oltean
2023-04-03  9:27                             ` Köry Maincent
2023-03-18  3:38                     ` Richard Cochran
2023-03-18  4:03                       ` Jakub Kicinski
2023-03-18 11:54                         ` Vladimir Oltean
2023-03-24 10:25         ` Maxime Chevallier
2023-04-02 17:36           ` Vladimir Oltean
2023-03-09  6:13   ` kernel test robot
2023-03-09 17:33   ` kernel test robot
2023-03-08 13:59 ` [PATCH v3 4/5] net: fix up drivers WRT phy time stamping Köry Maincent
2023-03-08 13:59 ` [PATCH v3 5/5] dt-bindings: net: phy: add timestamp preferred choice property Köry Maincent

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=20230310164451.ls7bbs6pdzs4m6pw@skbuf \
    --to=vladimir.oltean@nxp.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=alexandr.lobakin@intel.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=andy@greyhouse.net \
    --cc=chi.minghao@zte.com.cn \
    --cc=claudiu.manoil@nxp.com \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=gustavoars@kernel.org \
    --cc=hkallweit1@gmail.com \
    --cc=horatiu.vultur@microchip.com \
    --cc=j.vosburgh@gmail.com \
    --cc=kory.maincent@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=linux@rempel-privat.de \
    --cc=marco@mebeim.net \
    --cc=maxime.chevallier@bootlin.com \
    --cc=michael@walle.cc \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sean.anderson@seco.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vfalico@gmail.com \
    --cc=wangjie125@huawei.com \
    --cc=wsa+renesas@sang-engineering.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 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.