> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Mateusz Polchlopek > Sent: Tuesday, October 22, 2024 1:41 PM > To: [email protected] > Cc: [email protected]; Keller, Jacob E <[email protected]>; > Drewek, > Wojciech <[email protected]>; Simon Horman <[email protected]>; > Polchlopek, Mateusz <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-next v12 08/14] iavf: periodically > cache PHC > time > > From: Jacob Keller <[email protected]> > > The Rx timestamps reported by hardware may only have 32 bits of storage for > nanosecond time. These timestamps cannot be directly reported to the Linux > stack, as it expects 64bits of time. > > To handle this, the timestamps must be extended using an algorithm that > calculates the corrected 64bit timestamp by comparison between the PHC time > and the timestamp. This algorithm requires the PHC time to be captured within > ~2 seconds of when the timestamp was captured. > > Instead of trying to read the PHC time in the Rx hotpath, the algorithm > relies on a > cached value that is periodically updated. > > Keep this cached time up to date by using the PTP .do_aux_work kthread > function. > > The iavf_ptp_do_aux_work will reschedule itself about twice a second, and will > check whether or not the cached PTP time needs to be updated. > If so, it issues a VIRTCHNL_OP_1588_PTP_GET_TIME to request the time from > the PF. The jitter and latency involved with this command aren't important, > because the cached time just needs to be kept up to date within about ~2 > seconds. > > Signed-off-by: Jacob Keller <[email protected]> > Reviewed-by: Wojciech Drewek <[email protected]> > Reviewed-by: Simon Horman <[email protected]> > Co-developed-by: Mateusz Polchlopek <[email protected]> > Signed-off-by: Mateusz Polchlopek <[email protected]> > ---
Tested-by: Rafal Romanowski <[email protected]>
