From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F247C43387 for ; Tue, 15 Jan 2019 23:23:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2DE2D20883 for ; Tue, 15 Jan 2019 23:23:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="gwKbRiCu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391412AbfAOXXG (ORCPT ); Tue, 15 Jan 2019 18:23:06 -0500 Received: from mail-ot1-f74.google.com ([209.85.210.74]:55625 "EHLO mail-ot1-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727036AbfAOXXF (ORCPT ); Tue, 15 Jan 2019 18:23:05 -0500 Received: by mail-ot1-f74.google.com with SMTP id w24so1705994otk.22 for ; Tue, 15 Jan 2019 15:23:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=mKso/xF4+cbOtsDisT4E8AJzKIZkeen6l+Y9XEEaqoc=; b=gwKbRiCunUM4NgvnU3Tuhptize5xJNKy+Vy8WvBq+FGcC35JCVgSSqNUIXyulckzmN G5WsSfTK9LmgyWjQti8xpFW9xVgJ6tx4VJRLGjgFLipsXi0Nb4pzqkD/ZgiFIr6cgPQe NJ1s1Z6ebI8YsW9L1kiru02fWxjKIHUtCyF4RbSPsDCUfmSoD50OXPhhbdDC2/8Kj4TH yYrJuPD8YGg/WVZYpLpBeEDjpD0JwmN8dt2rNwYIHJl8x3yFE66r9FeQv9FohUIBe5uQ VJm36jbbbnENCDrlKIELalufSV1T1NG6YyYbBXXUgGV/j3ERJZN2npLYg1aThS9ttwex aUbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=mKso/xF4+cbOtsDisT4E8AJzKIZkeen6l+Y9XEEaqoc=; b=JtQ2SFVSUxHxSU0p+Pk62j59cPmq7wfDFtCre9exP2kTgMHLYBfG5I3BdGmRfgz9Gh chWxj3bKeHlA/E6U+pbCmii9gRpVLoAc+0t+Y6cv06b6Hm80J4a039Aw0pczpmZu1whV KfdTPjeLM+zxS2EDpXr0+ejrxSEcbRj8dHm3ZJpLgrhWIDofD5vkJR3Hk+uia4cQqxCi VmdBYeXIiBzVSbgtfuV2T3pFnEts1Sl3C0a+ab6VHYhkl5HQrkGg2HUnuqoIogOPD3iY ykJs4428SZ6WBRRhu5KB3BCEZI7JD2mMX2OO4NvC7BUYCa9uekiX+pnLME2zomw/zZaw lsrQ== X-Gm-Message-State: AJcUukfoce7VMnJtLDUR13mz8mw/FodtnZEzyhlOeyRq9BDoOwj+GeH1 gGi1udcnwqxZ+IBuexhz2vaItFGM39D47AdCQ4nhA2eMKTB0BmjWwHT1m1/0WmGKJxRYANyeyYB 817BSXQ5tcTNHcMB1+pcjWlYFBgAu4ZFm/jIxVoqnuxH2gEhFMqyIBQ== X-Google-Smtp-Source: ALg8bN6R1OwXPZ6iT4vr+lhvEjiK6HOUpNAdN85sMAkKkufKAaJ4MncJTnfAZkHuGNNeDZ0MnW2KoP0= X-Received: by 2002:a05:6830:1591:: with SMTP id i17mr3663150otr.15.1547594585002; Tue, 15 Jan 2019 15:23:05 -0800 (PST) Date: Tue, 15 Jan 2019 15:22:49 -0800 In-Reply-To: <20190115232252.5736-1-sdf@google.com> Message-Id: <20190115232252.5736-4-sdf@google.com> Mime-Version: 1.0 References: <20190115232252.5736-1-sdf@google.com> X-Mailer: git-send-email 2.20.1.97.g81188d93c3-goog Subject: [PATCH bpf-next 3/6] bpftool: don't print empty key/value for maps From: Stanislav Fomichev To: netdev@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, jakub.kicinski@netronome.com, quentin.monnet@netronome.com, Stanislav Fomichev Content-Type: text/plain; charset="UTF-8" Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When doing dump or lookup, don't print key if key_size == 0 or value if value_size == 0. The initial usecase is queue and stack, where we have only values. This is for regular output only, json still has all the fields. Before: bpftool map create /sys/fs/bpf/q type queue value 4 entries 10 name q bpftool map update pinned /sys/fs/bpf/q value 0 1 2 3 bpftool map lookup pinned /sys/fs/bpf/q key: value: 00 01 02 03 After: bpftool map create /sys/fs/bpf/q type queue value 4 entries 10 name q bpftool map update pinned /sys/fs/bpf/q value 0 1 2 3 bpftool map lookup pinned /sys/fs/bpf/q value: 00 01 02 03 Signed-off-by: Stanislav Fomichev --- tools/bpf/bpftool/map.c | 47 ++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c index 4256842f9664..3f599399913b 100644 --- a/tools/bpf/bpftool/map.c +++ b/tools/bpf/bpftool/map.c @@ -285,16 +285,21 @@ static void print_entry_plain(struct bpf_map_info *info, unsigned char *key, single_line = info->key_size + info->value_size <= 24 && !break_names; - printf("key:%c", break_names ? '\n' : ' '); - fprint_hex(stdout, key, info->key_size, " "); + if (info->key_size) { + printf("key:%c", break_names ? '\n' : ' '); + fprint_hex(stdout, key, info->key_size, " "); - printf(single_line ? " " : "\n"); + printf(single_line ? " " : "\n"); + } - printf("value:%c", break_names ? '\n' : ' '); - if (value) - fprint_hex(stdout, value, info->value_size, " "); - else - printf(""); + if (info->value_size) { + printf("value:%c", break_names ? '\n' : ' '); + if (value) + fprint_hex(stdout, value, info->value_size, + " "); + else + printf(""); + } printf("\n"); } else { @@ -303,19 +308,23 @@ static void print_entry_plain(struct bpf_map_info *info, unsigned char *key, n = get_possible_cpus(); step = round_up(info->value_size, 8); - printf("key:\n"); - fprint_hex(stdout, key, info->key_size, " "); - printf("\n"); - for (i = 0; i < n; i++) { - printf("value (CPU %02d):%c", - i, info->value_size > 16 ? '\n' : ' '); - if (value) - fprint_hex(stdout, value + i * step, - info->value_size, " "); - else - printf(""); + if (info->key_size) { + printf("key:\n"); + fprint_hex(stdout, key, info->key_size, " "); printf("\n"); } + if (info->value_size) { + for (i = 0; i < n; i++) { + printf("value (CPU %02d):%c", + i, info->value_size > 16 ? '\n' : ' '); + if (value) + fprint_hex(stdout, value + i * step, + info->value_size, " "); + else + printf(""); + printf("\n"); + } + } } } -- 2.20.1.97.g81188d93c3-goog