[Intel-wired-lan] [PATCH bpf-next 6/6] i40e: use batched xsk Tx interfaces to increase performance
John Fastabend
john.fastabend at gmail.com
Mon Nov 9 21:10:59 UTC 2020
Magnus Karlsson wrote:
> From: Magnus Karlsson <magnus.karlsson at intel.com>
>
> Use the new batched xsk interfaces for the Tx path in the i40e driver
> to improve performance. On my machine, this yields a throughput
> increase of 4% for the l2fwd sample app in xdpsock. If we instead just
> look at the Tx part, this patch set increases throughput with above
> 20% for Tx.
>
> Note that I had to explicitly loop unroll the inner loop to get to
> this performance level, by using a pragma. It is honored by both clang
> and gcc and should be ignored by versions that do not support
> it. Using the -funroll-loops compiler command line switch on the
> source file resulted in a loop unrolling on a higher level that
> lead to a performance decrease instead of an increase.
>
> Signed-off-by: Magnus Karlsson <magnus.karlsson at intel.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +-
> drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +-
> drivers/net/ethernet/intel/i40e/i40e_txrx.c | 14 ++-
> drivers/net/ethernet/intel/i40e/i40e_txrx.h | 3 +-
> drivers/net/ethernet/intel/i40e/i40e_xsk.c | 127 ++++++++++++++++++-------
> 5 files changed, 110 insertions(+), 40 deletions(-)
>
LGTM, although I mostly just reviewed the API usage. Maciej's seems like
a nice cleanup.
Acked-by: John Fastabend <john.fastabend at gmail.com>
More information about the Intel-wired-lan
mailing list