[RFC v3 0/3] add frequency adjustment support for PTP timesync
Ferruh Yigit
ferruh.yigit at amd.com
Fri Jun 2 21:44:21 CEST 2023
On 5/22/2023 2:23 PM, Simei Su wrote:
> This patchset cover below parts:
> (1)Introduce a new timesync API called "rte_eth_timesync_adjust_freq" that
> enables frequency adjustment during PTP timesync. This new API aligns with
> the kernel PTP which already supports frequency adjustment. It brings DPDK
> closer in alignment with the kernel's best practice.
>
Hi Simei,
I am not expert on PTP, so please help me understand,
I can see there is a new API to update device frequency by updating
device clock, 'rte_eth_timesync_adjust_fine()', that part is OK.
(Although I have some reservation with the API name, we can visit it later.)
PTP doesn't enforce any specific sync method, right?
Like adjusting by adding/subtracting or adjusting by updating clock
frequency.
As far as I understand updating device clock frequency is HW capability
to adjust time, perhaps in a finer grain, is this correct?
If so, is this HW capability should be exposed to user with a new API?
If this is a generic HW capability, I think it is OK to have single
responsibility API, but if this is a vendor specific feature it should
be behind a generic API.
Or should we hide this capability behind existing
'rte_eth_timesync_adjust_time()' API, and HW/driver use best possible
method for synchronization, so this can be transparent the user.
What is the benefit to make user selected explicitly one option or other?
> (2)Refine the ptpclient application by applying a PI algorithm that leverages
> the new API to further improve timesync accuracy. These changes doesn't break
> original solution and creates a more accurate solution for DPDK-based high
> accuracy PTP. We have provided significant improvements for timesync accuracy
> on e810 and we believe these improvements will also benefit other devices.
>
What is "PI algorithm"? and what PI stands for?
> The original command for starting ptpclient is:
> ./build/examples/dpdk-ptpclient -a 0000:81:00.0 -c 1 -n 3 -- -T 0 -p 0x1
>
> The command with PI algorithm is:
> ./build/examples/dpdk-ptpclient -a 0000:81:00.0 -c 1 -n 3 -- -T 0 -p 0x1 -- controller=pi
>
> [RFC v3 1/3] ethdev: add frequency adjustment API.
> [RFC v3 2/3] examples/ptpclient: refine application.
> [RFC v3 3/3] examples/ptpclient: add frequency adjustment support.
>
> v3:
> * Refine commit log in patch.
> * Add more description for the new API.
>
> v2:
> * Remove the ice PMD part from the RFC.
> * Add description in cover letter.
> * Refine commit log in patch.
>
> Simei Su (3):
> ethdev: add frequency adjustment API
> examples/ptpclient: refine application
> examples/ptpclient: add frequency adjustment support
>
> examples/ptpclient/ptpclient.c | 222 +++++++++++++++++++++++++++++++++------
> lib/ethdev/ethdev_driver.h | 5 +
> lib/ethdev/ethdev_trace.h | 9 ++
> lib/ethdev/ethdev_trace_points.c | 3 +
> lib/ethdev/rte_ethdev.c | 19 ++++
> lib/ethdev/rte_ethdev.h | 38 +++++++
> 6 files changed, 265 insertions(+), 31 deletions(-)
>
More information about the dev
mailing list