All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: "Köry Maincent" <kory.maincent@bootlin.com>
Cc: 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, Michael Walle <michael@walle.cc>,
	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 13:35:33 +0200	[thread overview]
Message-ID: <20230310113533.l7flaoli7y3bmlnr@skbuf> (raw)
In-Reply-To: <20230310114852.3cef643d@kmaincent-XPS-13-7390>

On Fri, Mar 10, 2023 at 11:48:52AM +0100, Köry Maincent wrote:
> > From previous discussions, I believe that a device tree property was
> > added in order to prevent perceived performance regressions when
> > timestamping support is added to a PHY driver, correct?
> 
> Yes, i.e. to select the default and better timestamp on a board.

Is there a way to unambiguously determine the "better" timestamping on a board?

Is it plausible that over time, when PTP timestamping matures and,
for example, MDIO devices get support for PTP_SYS_OFFSET_EXTENDED
(an attempt was here: https://lkml.org/lkml/2019/8/16/638), the
relationship between PTP clock qualities changes, and so does the
preference change?

> > I have a dumb question: if updating the device trees is needed in order
> > to prevent these behavior changes, then how is the regression problem
> > addressed for those device trees which don't contain this new property
> > (all device trees)?
> 
> On that case there is not really solution,

If it's not really a solution, then doesn't this fail at its primary
purpose of preventing regressions?

> but be aware that CONFIG_PHY_TIMESTAMPING need to be activated to
> allow timestamping on the PHY. Currently in mainline only few (3)
> defconfig have it enabled so it is really not spread,

Do distribution kernels use the defconfigs from the kernel, or do they
just enable as many options that sound good as possible?

> maybe I could add more documentation to prevent further regression
> issue when adding support of timestamp to a PHY driver.

My opinion is that either the problem was not correctly identified,
or the proposed solution does not address that problem.

What I believe is the problem is that adding support for PHY timestamping
to a PHY driver will cause a behavior change for existing systems which
are deployed with that PHY.

If I had a multi-port NIC where all ports share the same PHC, I would
want to create a boundary clock with it. I can do that just fine when
using MAC timestamping. But assume someone adds support for PHY
timestamping and the kernel switches to using PHY timestamps by default.
Now I need to keep in sync the PHCs of the PHYs, something which was
implicit before (all ports shared the same PHC). I have done nothing
incorrectly, yet my deployment doesn't work anymore. This is just an
example. It doesn't sound like a good idea in general for new features
to cause a behavior change by default.

Having identified that as the problem, I guess the solution should be
to stop doing that (and even though a PHY driver supports timestamping,
keep using the MAC timestamping by default).

There is a slight inconvenience caused by the fact that there are
already PHY drivers using PHY timestamping, and those may have been
introduced into deployments with PHY timestamping. We cannot change the
default behavior for those either. There are 5 such PHY drivers today
(I've grepped for mii_timestamper in drivers/net/phy).

I would suggest that the kernel implements a short whitelist of 5
entries containing PHY driver names, which are compared against
netdev->phydev->drv->name (with the appropriate NULL pointer checks).
Matches will default to PHY timestamping. Otherwise, the new default
will be to keep the behavior as if PHY timestamping doesn't exist
(MAC still provides the timestamps), and the user needs to select the
PHY as the timestamping source explicitly.

Thoughts?

  reply	other threads:[~2023-03-10 11:36 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 [this message]
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
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=20230310113533.l7flaoli7y3bmlnr@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=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.