Message ID | 20240905140028.560454-1-vadim.fedorenko@linux.dev (mailing list archive) |
---|---|
State | Accepted |
Commit | aa05fe67bcd641378454ca9d15b539125eb0933a |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2] ptp: ocp: Improve PCIe delay estimation | expand |
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Thu, 5 Sep 2024 14:00:28 +0000 you wrote: > The PCIe bus can be pretty busy during boot and probe function can > see excessive delays. Let's find the minimal value out of several > tests and use it as estimated value. > > Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev> > --- > v1 -> v2: > - init delay with the highest possible value > - use monotonic raw clock to calculate delay > > [...] Here is the summary with links: - [net-next,v2] ptp: ocp: Improve PCIe delay estimation https://git.kernel.org/netdev/net-next/c/aa05fe67bcd6 You are awesome, thank you!
diff --git a/drivers/ptp/ptp_ocp.c b/drivers/ptp/ptp_ocp.c index ee2ced88ab34..6ea44c86f2ec 100644 --- a/drivers/ptp/ptp_ocp.c +++ b/drivers/ptp/ptp_ocp.c @@ -1552,22 +1552,24 @@ ptp_ocp_watchdog(struct timer_list *t) static void ptp_ocp_estimate_pci_timing(struct ptp_ocp *bp) { - ktime_t start, end; - ktime_t delay; + ktime_t start, end, delay = U64_MAX; u32 ctrl; + int i; - ctrl = ioread32(&bp->reg->ctrl); - ctrl = OCP_CTRL_READ_TIME_REQ | OCP_CTRL_ENABLE; + for (i = 0; i < 3; i++) { + ctrl = ioread32(&bp->reg->ctrl); + ctrl = OCP_CTRL_READ_TIME_REQ | OCP_CTRL_ENABLE; - iowrite32(ctrl, &bp->reg->ctrl); + iowrite32(ctrl, &bp->reg->ctrl); - start = ktime_get_ns(); + start = ktime_get_raw_ns(); - ctrl = ioread32(&bp->reg->ctrl); + ctrl = ioread32(&bp->reg->ctrl); - end = ktime_get_ns(); + end = ktime_get_raw_ns(); - delay = end - start; + delay = min(delay, end - start); + } bp->ts_window_adjust = (delay >> 5) * 3; }
The PCIe bus can be pretty busy during boot and probe function can see excessive delays. Let's find the minimal value out of several tests and use it as estimated value. Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev> --- v1 -> v2: - init delay with the highest possible value - use monotonic raw clock to calculate delay --- drivers/ptp/ptp_ocp.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-)