]> git.baikalelectronics.ru Git - 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)
commitf8d134c631b7b5801704e2be8c90509799b947da
tree4a7739eb711b13d69f05886d149c29ca91081b22
parent8c7b7283df101e45cecf7b3d0e471f4de2bc3024
parent95599aa091117188e659c4e05447e9986cbe057e
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>