]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
Merge branch 'veth-XDP-stats-improvement'
authorDavid S. Miller <davem@davemloft.net>
Tue, 16 Oct 2018 04:58:46 +0000 (21:58 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Oct 2018 04:58:46 +0000 (21:58 -0700)
commita75d1801a9fc12e43a26b366b1a7494083cdf5ba
tree4a7739eb711b13d69f05886d149c29ca91081b22
parentacad76a5f6165dc451c5f35edb35d77def1f2e15
parentd397b9682c1c808344dd93b43de8750fa4d9f581
Merge branch 'veth-XDP-stats-improvement'

Toshiaki Makita says:

====================
veth: XDP stats improvement

ndo_xdp_xmit in veth did not update packet counters as described in [1].
Also, current implementation only updates counters on tx side so rx side
events like XDP_DROP were not collected.
This series implements the missing accounting as well as support for
ethtool per-queue stats in veth.

Patch 1: Update drop counter in ndo_xdp_xmit.
Patch 2: Update packet and byte counters for all XDP path, and drop
         counter on XDP_DROP.
Patch 3: Support per-queue ethtool stats for XDP counters.

Note that counters are maintained on per-queue basis for XDP but not
otherwise (per-cpu and atomic as before). This is because 1) tx path in
veth is essentially lockless so we cannot update per-queue stats on tx,
and 2) rx path is net core routine (process_backlog) which cannot update
per-queue based stats when XDP is disabled. On the other hand there are
real rxqs and napi handlers for veth XDP, so update per-queue stats on
rx for XDP packets, and use them to calculate tx counters as well,
contrary to the existing non-XDP counters.

[1] https://patchwork.ozlabs.org/cover/953071/#1967449
====================

Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>