> -----Original Message----- > From: Keller, Jacob E <[email protected]> > Sent: Tuesday, November 4, 2025 2:07 AM > To: Loktionov, Aleksandr <[email protected]>; Lobakin, > Aleksander <[email protected]>; Nguyen, Anthony L > <[email protected]>; Kitszel, Przemyslaw > <[email protected]> > Cc: [email protected]; [email protected]; Keller, > Jacob E <[email protected]> > Subject: [PATCH iwl-next 9/9] ice: convert all ring stats to > u64_stats_t > > After several cleanups, the ice driver is now finally ready to convert > all Tx and Rx ring stats to the u64_stats_t and proper use of the u64 > stats APIs. > > The final remaining part to cleanup is the VSI stats accumulation > logic in ice_update_vsi_ring_stats(). > > Refactor the function and its helpers so that all stat values (and not > just pkts and bytes) use the u64_stats APIs. The > ice_fetch_u64_(tx|rx)_stats functions read the stat values using > u64_stats_read and then copy them into local ice_vsi_(tx|rx)_stats > structures. This does require making a new struct with the stat fields > as u64. > > The ice_update_vsi_(tx|rx)_ring_stats functions call the fetch > functions per ring and accumulate the result into one copy of the > struct. This accumulated total is then used to update the relevant VSI > fields. > > Since these are relatively small, the contents are all stored on the > stack rather than allocating and freeing memory. > > Once the accumulator side is updated, the helper ice_stats_read and > ice_stats_inc and other related helper functions all easily translate > to use of u64_stats_read and u64_stats_inc. This completes the > refactor and ensures that all stats accesses now make proper use of > the API. > > Signed-off-by: Jacob Keller <[email protected]> > --- > drivers/net/ethernet/intel/ice/ice_txrx.h | 28 +++-- > drivers/net/ethernet/intel/ice/ice_lib.c | 29 ++--- > drivers/net/ethernet/intel/ice/ice_main.c | 180 ++++++++++++++++++++-- > --------
... > -- > 2.51.0.rc1.197.g6d975e95c9d7 Reviewed-by: Aleksandr Loktionov <[email protected]>
