Hi! This set starts with three micro optimizations to the TX path. The improvement is measurable, but below 1% of CPU utilization.
Patches 4 - 9 add basic TX offloads to representor devices, like checksum offload or TSO, and remove the unnecessary TX lock and Qdisc (our representors are software constructs on top of the PF). The last 2 patches add more info to error messages - id of command which failed and exact location of incorrect TLVs, very useful for debugging. Jakub Kicinski (11): nfp: copy only the relevant part of the TX descriptor for frags nfp: move temporary variables in nfp_net_tx_complete() nfp: move queue variable init nfp: correct descriptor offsets in presence of metadata nfp: avoid oversized TSO headers with metadata prepend nfp: run representor TX locklessly nfp: run don't require Qdiscs on representor netdevs nfp: add locking around representor changes nfp: add offloads on representors nfp: add offset to all TLV parsing errors nfp: report more info when reconfiguration fails drivers/net/ethernet/netronome/nfp/abm/main.c | 4 + drivers/net/ethernet/netronome/nfp/nfp_app.c | 42 +++++++++ drivers/net/ethernet/netronome/nfp/nfp_net.h | 3 + .../ethernet/netronome/nfp/nfp_net_common.c | 81 ++++++++++------- .../net/ethernet/netronome/nfp/nfp_net_ctrl.c | 21 +++-- .../net/ethernet/netronome/nfp/nfp_net_ctrl.h | 7 ++ .../net/ethernet/netronome/nfp/nfp_net_repr.c | 90 +++++++++++++++++++ .../net/ethernet/netronome/nfp/nfp_net_repr.h | 2 + 8 files changed, 213 insertions(+), 37 deletions(-) -- 2.17.1
