From: Ferruh Yigit <ferruh.yigit@amd.com>
To: Simei Su <simei.su@intel.com>,
thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru,
kirill.rybalchenko@intel.com, qi.z.zhang@intel.com
Cc: dev@dpdk.org, wenjun1.wu@intel.com
Subject: Re: [RFC v3 0/3] add frequency adjustment support for PTP timesync
Date: Fri, 2 Jun 2023 20:44:21 +0100 [thread overview]
Message-ID: <c9d4859f-b585-609d-0088-552f5fe2cfcf@amd.com> (raw)
In-Reply-To: <20230522132332.102030-1-simei.su@intel.com>
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(-)
>
next prev parent reply other threads:[~2023-06-02 19:44 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-31 2:22 [RFC 0/4] add frequency adjustment support for PTP Simei Su
2023-03-31 2:22 ` [RFC 1/4] ethdev: add frequency adjustment API Simei Su
2023-03-31 2:22 ` [RFC 2/4] net/ice: add frequency adjustment support for PTP Simei Su
2023-03-31 2:22 ` [RFC 3/4] examples/ptpclient: refine application Simei Su
2023-03-31 2:22 ` [RFC 4/4] examples/ptpclient: add frequency adjustment support Simei Su
2023-04-03 9:22 ` [RFC v2 0/3] add frequency adjustment support for PTP timesync Simei Su
2023-04-03 9:22 ` [RFC v2 1/3] ethdev: add frequency adjustment API Simei Su
2023-05-15 14:18 ` Thomas Monjalon
2023-05-24 9:25 ` Su, Simei
2023-04-03 9:22 ` [RFC v2 2/3] examples/ptpclient: refine application Simei Su
2023-04-03 9:22 ` [RFC v2 3/3] examples/ptpclient: add frequency adjustment support Simei Su
2023-05-22 13:23 ` [RFC v3 0/3] add frequency adjustment support for PTP timesync Simei Su
2023-05-22 13:23 ` [RFC v3 1/3] ethdev: add frequency adjustment API Simei Su
2023-05-22 13:23 ` [RFC v3 2/3] examples/ptpclient: refine application Simei Su
2023-06-02 19:45 ` Ferruh Yigit
2023-05-22 13:23 ` [RFC v3 3/3] examples/ptpclient: add frequency adjustment support Simei Su
2023-06-02 19:52 ` Ferruh Yigit
2023-06-07 10:04 ` Su, Simei
2023-06-02 19:44 ` Ferruh Yigit [this message]
2023-06-07 8:19 ` [RFC v3 0/3] add frequency adjustment support for PTP timesync Su, Simei
2023-06-07 18:29 ` Ferruh Yigit
2023-06-08 4:05 ` Su, Simei
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=c9d4859f-b585-609d-0088-552f5fe2cfcf@amd.com \
--to=ferruh.yigit@amd.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=kirill.rybalchenko@intel.com \
--cc=qi.z.zhang@intel.com \
--cc=simei.su@intel.com \
--cc=thomas@monjalon.net \
--cc=wenjun1.wu@intel.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).