[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
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