From mboxrd@z Thu Jan 1 00:00:00 1970 From: Taeung Song Subject: Re: [PATCH bpf-next] libbpf: Show possible section(type) names on when failed to guess a type Date: Thu, 20 Dec 2018 09:47:12 +0900 Message-ID: <973b2059-179e-0131-9d41-288da6432dd0@gmail.com> References: <20181219085240.14675-1-treeze.taeung@gmail.com> <20181219105252.686775a4@cakuba.netronome.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Daniel Borkmann , Alexei Starovoitov , netdev@vger.kernel.org, Andrey Ignatov To: Jakub Kicinski Return-path: Received: from mail-pl1-f194.google.com ([209.85.214.194]:45539 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728528AbeLTArT (ORCPT ); Wed, 19 Dec 2018 19:47:19 -0500 Received: by mail-pl1-f194.google.com with SMTP id a14so10244080plm.12 for ; Wed, 19 Dec 2018 16:47:17 -0800 (PST) In-Reply-To: <20181219105252.686775a4@cakuba.netronome.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 12/20/18 3:52 AM, Jakub Kicinski wrote: > On Wed, 19 Dec 2018 17:52:40 +0900, Taeung Song wrote: >> We need to let users check their wrong section name >> with proper section names when failed to get proper type from it. >> Because there is no knowing what kind of section name can be used. > > # bpftool prog help > Usage: bpftool prog { show | list } [PROG] > [...] > TYPE := { socket | kprobe | kretprobe | classifier | action | > tracepoint | raw_tracepoint | xdp | perf_event | cgroup/skb | > cgroup/sock | cgroup/dev | lwt_in | lwt_out | lwt_xmit | > lwt_seg6local | sockops | sk_skb | sk_msg | lirc_mode2 | > sk_reuseport | flow_dissector | > cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 | > cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 | > cgroup/sendmsg4 | cgroup/sendmsg6 } > ATTACH_TYPE := { msg_verdict | skb_verdict | skb_parse | > flow_dissector } > OPTIONS := { {-j|--json} [{-p|--pretty}] | {-f|--bpffs} | > {-m|--mapcompat} | {-n|--nomount} } > > Also in man bpftool-prog. > > Perhaps we could just point users to that info? IMHO having libraries Right, I think when users used wrong section names we need to let them realize libbpf guess prog/attach types from given section names because users who are unfamiliar with BPF programming mightn't even know that, right ? And how about a function that return supported section names ? I think it can be used for the 'TYPE'/'ATTACH_TYPE' help message because it is just a string and couldn't have latest types. > unconditionally print warnings is not great.. > OK, need to change that, will send v2. Thanks, Taeung >> For example, when a 'cgroup' section name of a BPF program is used, >> >> Before: >> >> $ bpftool prog load bpf-prog.o /sys/fs/bpf/prog1 >> Error: failed to guess program type based on section name cgroup >> >> After: >> >> libbpf: failed to guess program type based on section name 'cgroup' >> libbpf: possible section(type) names are: socket kprobe/ kretprobe/ classifier action tracepoint/ raw_tracepoint/ xdp perf_event lwt_in lwt_out lwt_xmit lwt_seg6local cgroup_skb/ingress cgroup_skb/egress cgroup/skb cgroup/sock cgroup/post_bind4 cgroup/post_bind6 cgroup/dev sockops sk_skb/stream_parser sk_skb/stream_verdict sk_skb sk_msg lirc_mode2 flow_dissector cgroup/bind4 cgroup/bind6 cgroup/connect4 cgroup/connect6 cgroup/sendmsg4 cgroup/sendmsg6 >> >> Cc: Jakub Kicinski >> Cc: Andrey Ignatov >> Signed-off-by: Taeung Song