| Message ID | 20260507081653.1717172-1-grzegorz.nitka@intel.com |
|---|---|
| State | Accepted |
| Delegated to: | Anthony Nguyen |
| Headers | show |
| Series | [iwl-net] ice: restore PTP Rx timestamp config after ethtool set-channels | expand |
On Thu, May 07, 2026 at 10:16:53AM +0200, Grzegorz Nitka wrote: > When ethtool -L changes queue counts, ice_vsi_recfg_qs() closes and > rebuilds the VSI, reallocating Rx rings. The newly allocated rings have > ptp_rx cleared, so RX hardware timestamps are no longer attached to skb > until hwtstamp configuration is applied again. > > Restore timestamp mode after ice_vsi_open() in the queue reconfiguration > path, matching reset/rebuild behavior and ensuring newly rebuilt Rx rings > have PTP RX timestamping re-enabled. > > Testing hints: > - run ptp4l application in client synchronization mode: > ptp4l -i ethX -m -s > - run PTP traffic > - change queue number on ethX netdev interface: > ethtool -L ethX combined new_queue_size > - observe ptp4l output > - expected result: no "received DELAY_REQ without timestamp" messages > > Fixes: 77a781155a65 ("ice: enable receive hardware timestamping") > Cc: stable@vger.kernel.org > Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> Reviewed-by: Simon Horman <horms@kernel.org> FTR: There is an AI-generated review of this patch available on sashiko.dev. I do not believe any of the issues raised there should block progress of this patch.
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka > Sent: Thursday, May 7, 2026 1:17 AM > To: intel-wired-lan@lists.osuosl.org > Cc: netdev@vger.kernel.org; richardcochran@gmail.com; linux-kernel@vger.kernel.org; stable@vger.kernel.org; Loktionov, Aleksandr <aleksandr.loktionov@intel.com>; andrew+netdev@lunn.ch; edumazet@google.com; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>; kuba@kernel.org; pabeni@redhat.com; davem@davemloft.net > Subject: [Intel-wired-lan] [PATCH iwl-net] ice: restore PTP Rx timestamp config after ethtool set-channels > > When ethtool -L changes queue counts, ice_vsi_recfg_qs() closes and rebuilds the VSI, reallocating Rx rings. The newly allocated rings have ptp_rx cleared, so RX hardware timestamps are no longer attached to skb until hwtstamp configuration is applied again. > > Restore timestamp mode after ice_vsi_open() in the queue reconfiguration path, matching reset/rebuild behavior and ensuring newly rebuilt Rx rings have PTP RX timestamping re-enabled. > > Testing hints: > - run ptp4l application in client synchronization mode: > ptp4l -i ethX -m -s > - run PTP traffic > - change queue number on ethX netdev interface: > ethtool -L ethX combined new_queue_size > - observe ptp4l output > - expected result: no "received DELAY_REQ without timestamp" messages > > Fixes: 77a781155a65 ("ice: enable receive hardware timestamping") > Cc: stable@vger.kernel.org > Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_main.c | 6 ++++++ > 1 file changed, 6 insertions(+) Tested-by: Alexander Nowlin <alexander.nowlin@intel.com>
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index 79f2906eda99..b87accaf7d14 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -4110,6 +4110,12 @@ int ice_vsi_recfg_qs(struct ice_vsi *vsi, int new_rx, int new_tx, bool locked) } ice_pf_dcb_recfg(pf, locked); ice_vsi_open(vsi); + /* Rx rings are reallocated during VSI rebuild and lose their ptp_rx + * flag. Restore timestamp mode so newly allocated rings are set up + * for hardware Rx timestamping. + */ + if (test_bit(ICE_FLAG_PTP_SUPPORTED, pf->flags)) + ice_ptp_restore_timestamp_mode(pf); goto done; rebuild_err:
When ethtool -L changes queue counts, ice_vsi_recfg_qs() closes and rebuilds the VSI, reallocating Rx rings. The newly allocated rings have ptp_rx cleared, so RX hardware timestamps are no longer attached to skb until hwtstamp configuration is applied again. Restore timestamp mode after ice_vsi_open() in the queue reconfiguration path, matching reset/rebuild behavior and ensuring newly rebuilt Rx rings have PTP RX timestamping re-enabled. Testing hints: - run ptp4l application in client synchronization mode: ptp4l -i ethX -m -s - run PTP traffic - change queue number on ethX netdev interface: ethtool -L ethX combined new_queue_size - observe ptp4l output - expected result: no "received DELAY_REQ without timestamp" messages Fixes: 77a781155a65 ("ice: enable receive hardware timestamping") Cc: stable@vger.kernel.org Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> --- drivers/net/ethernet/intel/ice/ice_main.c | 6 ++++++ 1 file changed, 6 insertions(+) base-commit: f0cfdedb42fe64b06fd048bd490ef835beeda658