[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c85c77bc-9a8c-4336-ab79-89a981c43e01@linux.dev>
Date: Wed, 14 Jan 2026 10:50:52 +0000
From: Vadim Fedorenko <vadim.fedorenko@...ux.dev>
To: Wen Gu <guwen@...ux.alibaba.com>, Andrew Lunn <andrew@...n.ch>,
Sven Schnelle <svens@...ux.ibm.com>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Richard Cochran <richardcochran@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>, Jakub Kicinski <kuba@...nel.org>,
Dust Li <dust.li@...ux.alibaba.com>, Xuan Zhuo <xuanzhuo@...ux.alibaba.com>,
Andrew Lunn <andrew+netdev@...n.ch>, David Woodhouse <dwmw2@...radead.org>,
virtualization@...ts.linux.dev, Nick Shi <nick.shi@...adcom.com>,
Paolo Abeni <pabeni@...hat.com>, linux-clk@...r.kernel.org
Subject: Re: [RFC] Defining a home/maintenance model for non-NIC PHC devices
using the /dev/ptpX API
On 14/01/2026 09:13, Wen Gu wrote:
>
>
> On 2026/1/12 22:52, Vadim Fedorenko wrote:
>> On 12/01/2026 13:24, Andrew Lunn wrote:
>>>>> drivers/ptp/core - API as written above
>>>>> drivers/ptp/virtual - all PtP drivers somehow emulating a PtP clock
>>>>> (like the ptp_s390 driver)
>>>>> drivers/ptp/net - all NIC related drivers.
>>>>>
>>>>
>>>>
>>>> Well, drivers/ptp/virtual is not really good, because some drivers are
>>>> for physical devices exporting PTP interface, but without NIC.
>>>
>>> If the lack of a NIC is the differentiating property:
>>>
>>>>> drivers/ptp/net - all NIC related drivers.
>>>>> drivers/ptp/netless - all related drivers which are not associated
>>>>> to a NIC.
>>>
>>> Or
>>>
>>>>> drivers/ptp/emulating - all drivers emulating a PtP clock
>>
>> I would go with "emulating" then.
>>
>>>
>>> Andrew
>
> Thank you all for your suggestions.
>
> The drivers under drivers/ptp can be divided into (to my knowledge):
>
> 1. Network/1588-oriented clocks, which allow the use of tools like
> ptp4l to synchronize the local PHC with an external reference clock
> (based on the network or other methods) via the 1588 protocol to
> maintain accuracy. Examples include:
>
> - ptp_dte
> - ptp_qoriq
> - ptp_ines
> - ptp_pch
> - ptp_idt82p33
> - ptp_clockmatrix
> - ptp_fc3
> - ptp_mock (mock/testing)
> - ptp_dfl_tod
> - ptp_netc
> - ptp_ocp (a special case which provides a grandmaster
> clock for a PTP enabled network, generally
> serves as the reference clock)
ptp_ocp is a timecard driver, which doesn't require calibration by
ptp4l/ts2phc. OCP TimeCards have their own Atomic Clock onboard which
is disciplined by 1-PPS or 10mhz signal from configurable source. The
disciplining algorithm is implemented in Atomic Clock package
controller. The driver exposes ptp device mostly for reading the time.
So I believe it belongs to group 2 rather than 1588 group.
>
> 2. Platform/infrastructure/hypervisor-provided clocks. They don't
> require calibration by ptp4l based on 1588 and reference clocks,
> instead the underlay handle this. Users generally read the time.
> They include:
>
> - ptp_kvm
> - ptp_vmclock
> - ptp_vmw
> - ptp_s390
> - ptp_cipu (upstreaming)
>
> From this perspective, I agree that "emulating" could be an appropriate
> name for the second ones.
>
> And I would like to further group the first ones to "1588", thus
> divide drivers/ptp to:
>
> - drivers/ptp/core
> - drivers/ptp/1588
> - drivers/ptp/emulating
>
> Regards.
Powered by blists - more mailing lists