> -----Original Message-----
> From: Jacob Keller <[email protected]> 
> Sent: Friday, September 25, 2026 4:57 PM
> To: Intel Wired LAN <[email protected]>; Machnikowski, Maciej 
> <[email protected]>; Keller, Jacob E <[email protected]>; 
> Korba, Przemyslaw <[email protected]>; Nguyen, Anthony L 
> <[email protected]>; Nitka, Grzegorz <[email protected]>; 
> Kubalewski, Arkadiusz <[email protected]>
> Cc: Keller, Jacob E <[email protected]>; Oros, Petr 
> <[email protected]>; Machnikowski, Maciej <[email protected]>
> Subject: [PATCH iwl-net v3 11/15] ice: wait for in-flight Tx timestamps 
> before flushing the tracker
> 
> From: Petr Oros <[email protected]>
> 
> ice_ptp_flush_tx_tracker() frees every tracked request, but a request whose 
> timestamp is still being captured by the PHY at that moment is freed without 
> touching the PHY entry. The ready bit published shortly after has no tracked 
> owner, and the PHY does not raise another Tx timestamp interrupt until every 
> outstanding ready bit is read, so delivery for the whole quad degrades to the 
> periodic work.
> 
> Wait up to 10 ms (per port) for in-flight captures to publish their ready 
> bits before flushing, so the flush clears them together with the rest.
> 
> Note that the ice_ptp_flush_tx_tracker() function was introduced along with 
> the original E810 support, but that device does not have a ready bitmap.
> Only later devices (E822, E825, E830) have the bitmap and potential issues 
> with internal tracking. Thus, skip the wait for E810 by checking the
> tx->has_ready_bitmap flag.
> 
> Fixes: 10e4b4a3a3e1 ("ice: check Tx timestamp memory register for ready 
> timestamps")
> Signed-off-by: Petr Oros <[email protected]>
> Reviewed-by: Maciek Machnikowski <[email protected]>
> Signed-off-by: Jacob Keller <[email protected]>
> ---
>  drivers/net/ethernet/intel/ice/ice_ptp.c | 64 
> ++++++++++++++++++++++++++++++++
>  1 file changed, 64 insertions(+)

Tested-by: Alexander Nowlin <[email protected]>

Reply via email to