lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <f53ad1c0-31b2-3354-889c-c098d4d6888c@iogearbox.net> Date: Thu, 30 Aug 2018 14:25:25 +0200 From: Daniel Borkmann <daniel@...earbox.net> To: Yonghong Song <yhs@...com>, ast@...com, kafai@...com, netdev@...r.kernel.org Cc: kernel-team@...com Subject: Re: [PATCH bpf-next 0/3] bpf: implement percpu map pretty print for bpffs and bpftool On 08/29/2018 11:43 PM, Yonghong Song wrote: > Commit a26ca7c982cb ("bpf: btf: Add pretty print support to the > basic arraymap") and Commit 699c86d6ec21 ("bpf: btf: add pretty print > for hash/lru_hash maps") added bpffs pretty print for array, hash and > lru hash maps. The pretty print gives users a structurally formatted > dump for keys/values which much easy to understand than raw bytes. > > This patch set implemented bpffs pretty print support for > percpu arraymap, percpu hashmap and percpu lru hashmap. > For complex key/value types, the pretty print here is even more useful > due to > . large volumne of data making it even harder to correlate bytes > to a particular field in a particular cpu. > . kernel rounds the value size for each cpu to multiple of 8. > User has to be aware of this otherwise wrong value may be > derived from cpu 1/2/... > > For example, we may have a bpffs pretty print like below: > 43602: { > cpu0: {43602,0,-43602,0x3,0xaa52,0x3,{43602|[82,170,0,0,0,0,0,0]},ENUM_TWO} > cpu1: {43602,0,-43602,0x3,0xaa52,0x3,{43602|[82,170,0,0,0,0,0,0]},ENUM_TWO} > cpu2: {43602,0,-43602,0x3,0xaa52,0x3,{43602|[82,170,0,0,0,0,0,0]},ENUM_TWO} > cpu3: {43602,0,-43602,0x3,0xaa52,0x3,{43602|[82,170,0,0,0,0,0,0]},ENUM_TWO} > } > for a percpu map. > > This patch also added percpu formatted print on bpftool. For example, > bpftool may print like below: > { > "key": 0, > "values": [{ > "cpu": 0, > "value": { > "ui32": 0, > "ui16": 0, > } > },{ > "cpu": 1, > "value": { > "ui32": 1, > "ui16": 0, > } > },{ > "cpu": 2, > "value": { > "ui32": 2, > "ui16": 0, > } > },{ > "cpu": 3, > "value": { > "ui32": 3, > "ui16": 0, > } > } > ] > } > > Patch #1 implemented bpffs pretty print for percpu arraymap/hash/lru_hash > in kernel. Patch #2 added the test case in tools bpf selftest test_btf. > Patch #3 added percpu map btf based dump. > > Yonghong Song (3): > bpf: add bpffs pretty print for percpu arraymap/hash/lru_hash > tools/bpf: add bpffs percpu map pretty print tests in test_btf > tools/bpf: bpftool: add btf percpu map formated dump > > kernel/bpf/arraymap.c | 24 +++++ > kernel/bpf/hashtab.c | 31 ++++++ > tools/bpf/bpftool/map.c | 33 +++++- > tools/testing/selftests/bpf/test_btf.c | 179 ++++++++++++++++++++++++++------- > 4 files changed, 230 insertions(+), 37 deletions(-) Applied to bpf-next, thanks Yonghong!
Powered by blists - more mailing lists