Patch "ice: fix possible under reporting of ethtool Tx and Rx statistics" has been added to the 5.17-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ice: fix possible under reporting of ethtool Tx and Rx statistics

to the 5.17-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     ice-fix-possible-under-reporting-of-ethtool-tx-and-r.patch
and it can be found in the queue-5.17 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c6696a222e424f910946ad65a927c21eee514137
Author: Paul Greenwalt <paul.greenwalt@xxxxxxxxx>
Date:   Thu Apr 28 14:11:42 2022 -0700

    ice: fix possible under reporting of ethtool Tx and Rx statistics
    
    [ Upstream commit 31b6298fd8e29effe9ed6b77351ac5969be56ce0 ]
    
    The hardware statistics counters are not cleared during resets so the
    drivers first access is to initialize the baseline and then subsequent
    reads are for reporting the counters. The statistics counters are read
    during the watchdog subtask when the interface is up. If the baseline
    is not initialized before the interface is up, then there can be a brief
    window in which some traffic can be transmitted/received before the
    initial baseline reading takes place.
    
    Directly initialize ethtool statistics in driver open so the baseline will
    be initialized when the interface is up, and any dropped packets
    incremented before the interface is up won't be reported.
    
    Fixes: 28dc1b86f8ea9 ("ice: ignore dropped packets during init")
    Signed-off-by: Paul Greenwalt <paul.greenwalt@xxxxxxxxx>
    Tested-by: Gurucharan <gurucharanx.g@xxxxxxxxx> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 7f6715eb862f..30f055e1a92a 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -5907,9 +5907,10 @@ static int ice_up_complete(struct ice_vsi *vsi)
 			ice_ptp_link_change(pf, pf->hw.pf_id, true);
 	}
 
-	/* clear this now, and the first stats read will be used as baseline */
-	vsi->stat_offsets_loaded = false;
-
+	/* Perform an initial read of the statistics registers now to
+	 * set the baseline so counters are ready when interface is up
+	 */
+	ice_update_eth_stats(vsi);
 	ice_service_task_schedule(pf);
 
 	return 0;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux