Should we move all the toe stats out of the port_info and into the correct queue (txq, ofld_txq, rxq, ofld_rxq) instead? That would avoid an atomic and the toep->vi->pi->stat indirection on the hot path.
So I looked and this doesn't let us avoid the atomic sadly. For TOE TLS TX, the TXQ lock is only locked inside of t4_l2t_send() and not in the caller where the stats are bumped. Pushing the TXQ lock out into the caller isn't feasible I think because t4_l2t_send_slow() wants to do some work without the TXQ lock held. I'm not sure if the RXQ is locked for the TOE TLS RX stats (it might be). An alternative for all of these stats though might be to switch to counter_u64.