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!