linux-sg2042/tools
Roman Gushchin 371e4fcc9d selftests/bpf: cgroup local storage-based network counters
This commit adds a bpf kselftest, which demonstrates how percpu
and shared cgroup local storage can be used for efficient lookup-free
network accounting.

Cgroup local storage provides generic memory area with a very efficient
lookup free access. To avoid expensive atomic operations for each
packet, per-cpu cgroup local storage is used. Each packet is initially
charged to a per-cpu counter, and only if the counter reaches certain
value (32 in this case), the charge is moved into the global atomic
counter. This allows to amortize atomic operations, keeping reasonable
accuracy.

The test also implements a naive network traffic throttling, mostly to
demonstrate the possibility of bpf cgroup--based network bandwidth
control.

Expected output:
  ./test_netcnt
  test_netcnt:PASS

Signed-off-by: Roman Gushchin <guro@fb.com>
Acked-by: Song Liu <songliubraving@fb.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-10-01 16:18:33 +02:00
..
accounting
arch tools headers uapi: Update tools's copies of kvm headers 2018-09-11 13:09:26 -03:00
bpf bpftool: add support for PERCPU_CGROUP_STORAGE maps 2018-10-01 16:18:33 +02:00
build Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-08-15 15:04:25 -07:00
cgroup
firewire
gpio Linux 4.16-rc5 2018-03-18 17:48:59 +01:00
hv Tools: hv: Fix a bug in the key delete code 2018-09-12 09:31:00 +02:00
iio iio: Add modifier for DUV light 2018-07-23 19:18:10 +01:00
include bpf: sync include/uapi/linux/bpf.h to tools/include/uapi/linux/bpf.h 2018-10-01 16:18:33 +02:00
kvm/kvm_stat tools/kvm_stat: re-animate display of dead guests 2018-08-30 17:15:12 +02:00
laptop
leds
lib libbpf: Support sk_skb/stream_{parser, verdict} section names 2018-09-27 21:14:59 +02:00
memory-model tools/memory-model: Rename litmus tests to comply to norm7 2018-07-17 09:30:36 +02:00
nfsd
objtool Kbuild updates for v4.19 2018-08-15 12:09:03 -07:00
pci tools: PCI: Add MSI-X support 2018-07-19 11:47:13 +01:00
pcmcia
perf perf Documentation: Fix out-of-tree asciidoctor man page generation 2018-09-18 10:17:16 -03:00
power treewide: convert ISO_8859-1 text comments to utf-8 2018-08-23 18:48:43 -07:00
scripts Kbuild: fix # escaping in .cmd files for future Make 2018-04-11 00:03:02 +09:00
spi
testing selftests/bpf: cgroup local storage-based network counters 2018-10-01 16:18:33 +02:00
thermal/tmon tools/thermal: tmon: fix for segfault 2018-03-27 09:51:23 +02:00
time
usb tools: usb: ffs-test: Fix build on big endian systems 2018-07-17 10:12:51 +03:00
virtio tools/virtio: add kmalloc_array stub 2018-07-27 16:54:40 +03:00
vm tools/vm/page-types.c: fix "defined but not used" warning 2018-09-04 16:45:02 -07:00
wmi
Makefile