> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@xxxxxxxxxx> On Behalf Of > Maciej Fijalkowski > Sent: Thursday, August 19, 2021 5:30 PM > To: intel-wired-lan@xxxxxxxxxxxxxxxx > Cc: joamaki@xxxxxxxxx; Lobakin, Alexandr <alexandr.lobakin@xxxxxxxxx>; > netdev@xxxxxxxxxxxxxxx; toke@xxxxxxxxxx; bjorn@xxxxxxxxxx; > kuba@xxxxxxxxxx; bpf@xxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx; Karlsson, > Magnus <magnus.karlsson@xxxxxxxxx> > Subject: [Intel-wired-lan] [PATCH v7 intel-next 3/9] ice: split ice_ring onto > Tx/Rx separate structs > > While it was convenient to have a generic ring structure that served > both Tx and Rx sides, next commits are going to introduce several > Tx-specific fields, so in order to avoid hurting the Rx side, let's > pull out the Tx ring onto new ice_tx_ring and ice_rx_ring structs. > > Rx ring could be handled by the old ice_ring which would reduce the code > churn within this patch, but this would make things asymmetric. > > Make the union out of the ring container within ice_q_vector so that it > is possible to iterate over newly introduced ice_tx_ring. > > Remove the @size as it's only accessed from control path and it can be > calculated pretty easily. > > Change definitions of ice_update_ring_stats and > ice_fetch_u64_stats_per_ring so that they are ring agnostic and can be > used for both Rx and Tx rings. > > Sizes of Rx and Tx ring structs are 256 and 192 bytes, respectively. In > Rx ring xdp_rxq_info occupies its own cacheline, so it's the major > difference now. > > Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx> > --- > drivers/net/ethernet/intel/ice/ice.h | 33 +++-- > drivers/net/ethernet/intel/ice/ice_base.c | 57 ++++---- > drivers/net/ethernet/intel/ice/ice_base.h | 8 +- > drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 5 +- > drivers/net/ethernet/intel/ice/ice_dcb_lib.h | 10 +- > drivers/net/ethernet/intel/ice/ice_eswitch.c | 35 ++--- > drivers/net/ethernet/intel/ice/ice_eswitch.h | 4 +- > drivers/net/ethernet/intel/ice/ice_ethtool.c | 49 ++++--- > drivers/net/ethernet/intel/ice/ice_lib.c | 64 +++++---- > drivers/net/ethernet/intel/ice/ice_lib.h | 6 +- > drivers/net/ethernet/intel/ice/ice_main.c | 69 +++++---- > drivers/net/ethernet/intel/ice/ice_ptp.c | 2 +- > drivers/net/ethernet/intel/ice/ice_ptp.h | 4 +- > drivers/net/ethernet/intel/ice/ice_trace.h | 28 ++-- > drivers/net/ethernet/intel/ice/ice_txrx.c | 131 ++++++++++-------- > drivers/net/ethernet/intel/ice/ice_txrx.h | 114 +++++++++------ > drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 18 +-- > drivers/net/ethernet/intel/ice/ice_txrx_lib.h | 14 +- > .../net/ethernet/intel/ice/ice_virtchnl_pf.c | 2 +- > drivers/net/ethernet/intel/ice/ice_xsk.c | 49 ++++--- > drivers/net/ethernet/intel/ice/ice_xsk.h | 20 +-- > 21 files changed, 397 insertions(+), 325 deletions(-) > Tested-by: Gurucharan G <gurucharanx.g@xxxxxxxxx> (A Contingent worker at Intel)