• Jesper Dangaard Brouer's avatar
    samples/bpf: program demonstrating access to xdp_rxq_info · 0fca931a
    Jesper Dangaard Brouer authored
    This sample program can be used for monitoring and reporting how many
    packets per sec (pps) are received per NIC RX queue index and which
    CPU processed the packet. In itself it is a useful tool for quickly
    identifying RSS imbalance issues, see below.
    
    The default XDP action is XDP_PASS in-order to provide a monitor
    mode. For benchmarking purposes it is possible to specify other XDP
    actions on the cmdline --action.
    
    Output below shows an imbalance RSS case where most RXQ's deliver to
    CPU-0 while CPU-2 only get packets from a single RXQ.  Looking at
    things from a CPU level the two CPUs are processing approx the same
    amount, BUT looking at the rx_queue_index levels it is clear that
    RXQ-2 receive much better service, than other RXQs which all share CPU-0.
    
    Running XDP on dev:i40e1 (ifindex:3) action:XDP_PASS
    XDP stats       CPU     pps         issue-pps
    XDP-RX CPU      0       900,473     0
    XDP-RX CPU      2       906,921     0
    XDP-RX CPU      total   1,807,395
    
    RXQ stats       RXQ:CPU pps         issue-pps
    rx_queue_index    0:0   180,098     0
    rx_queue_index    0:sum 180,098
    rx_queue_index    1:0   180,098     0
    rx_queue_index    1:sum 180,098
    rx_queue_index    2:2   906,921     0
    rx_queue_index    2:sum 906,921
    rx_queue_index    3:0   180,098     0
    rx_queue_index    3:sum 180,098
    rx_queue_index    4:0   180,082     0
    rx_queue_index    4:sum 180,082
    rx_queue_index    5:0   180,093     0
    rx_queue_index    5:sum 180,093
    Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    0fca931a
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.cocciconfig Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...