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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 66D23C07E9D for ; Tue, 27 Sep 2022 11:08:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231790AbiI0LIH (ORCPT ); Tue, 27 Sep 2022 07:08:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34216 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231462AbiI0LHm (ORCPT ); Tue, 27 Sep 2022 07:07:42 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A76C4C601; Tue, 27 Sep 2022 04:05:37 -0700 (PDT) Received: from canpemm500010.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4McGrJ1gmxzHtcW; Tue, 27 Sep 2022 19:00:48 +0800 (CST) Received: from [10.174.179.191] (10.174.179.191) by canpemm500010.china.huawei.com (7.192.105.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 27 Sep 2022 19:05:34 +0800 Message-ID: Date: Tue, 27 Sep 2022 19:05:33 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: Re: [bpf-next v6 2/3] bpftool: Update doc (add autoattach to prog load) To: Daniel Borkmann , , , , , , , , , , , , , , , , , CC: , , , References: <1664014430-5286-1-git-send-email-wangyufen@huawei.com> <1664014430-5286-2-git-send-email-wangyufen@huawei.com> <2b001fcb-4340-e1ba-4b84-a69c670cf09a@iogearbox.net> From: wangyufen In-Reply-To: <2b001fcb-4340-e1ba-4b84-a69c670cf09a@iogearbox.net> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.191] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To canpemm500010.china.huawei.com (7.192.105.118) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org 在 2022/9/27 0:20, Daniel Borkmann 写道: > On 9/24/22 12:13 PM, Wang Yufen wrote: >> Add autoattach optional to prog load|loadall for supporting >> one-step load-attach-pin_link. >> >> Signed-off-by: Wang Yufen >> --- >>   tools/bpf/bpftool/Documentation/bpftool-prog.rst | 13 +++++++++++-- >>   1 file changed, 11 insertions(+), 2 deletions(-) >> >> diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst >> b/tools/bpf/bpftool/Documentation/bpftool-prog.rst >> index eb1b2a254eb1..2d9f27a0120f 100644 >> --- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst >> +++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst >> @@ -31,7 +31,7 @@ PROG COMMANDS >>   |    **bpftool** **prog dump xlated** *PROG* [{**file** *FILE* | >> **opcodes** | **visual** | **linum**}] >>   |    **bpftool** **prog dump jited**  *PROG* [{**file** *FILE* | >> **opcodes** | **linum**}] >>   |    **bpftool** **prog pin** *PROG* *FILE* >> -|    **bpftool** **prog** { **load** | **loadall** } *OBJ* *PATH* >> [**type** *TYPE*] [**map** {**idx** *IDX* | **name** *NAME*} *MAP*] >> [**dev** *NAME*] [**pinmaps** *MAP_DIR*] >> +|    **bpftool** **prog** { **load** | **loadall** } *OBJ* *PATH* >> [**type** *TYPE*] [**map** {**idx** *IDX* | **name** *NAME*} *MAP*] >> [**dev** *NAME*] [**pinmaps** *MAP_DIR*] [**autoattach**] >>   |    **bpftool** **prog attach** *PROG* *ATTACH_TYPE* [*MAP*] >>   |    **bpftool** **prog detach** *PROG* *ATTACH_TYPE* [*MAP*] >>   |    **bpftool** **prog tracelog** >> @@ -131,7 +131,7 @@ DESCRIPTION >>             contain a dot character ('.'), which is reserved for future >>             extensions of *bpffs*. >>   -    **bpftool prog { load | loadall }** *OBJ* *PATH* [**type** >> *TYPE*] [**map** {**idx** *IDX* | **name** *NAME*} *MAP*] [**dev** >> *NAME*] [**pinmaps** *MAP_DIR*] >> +    **bpftool prog { load | loadall }** *OBJ* *PATH* [**type** >> *TYPE*] [**map** {**idx** *IDX* | **name** *NAME*} *MAP*] [**dev** >> *NAME*] [**pinmaps** *MAP_DIR*] [**autoattach**] >>             Load bpf program(s) from binary *OBJ* and pin as *PATH*. >>             **bpftool prog load** pins only the first program from the >>             *OBJ* as *PATH*. **bpftool prog loadall** pins all programs >> @@ -150,6 +150,15 @@ DESCRIPTION >>             Optional **pinmaps** argument can be provided to pin all >>             maps under *MAP_DIR* directory. >>   +          If **autoattach** is specified program will be attached >> +          before pin. In that case, only the link (representing the >> +          program attached to its hook) is pinned, not the program as >> +          such, so the path won't show in "**bpftool prog show -f**", >> +          only show in "**bpftool link show -f**". Also, this only >> works >> +          when bpftool (libbpf) is able to infer all necessary >> information >> +          from the objectfile, in particular, it's not supported for >> all >> +          program types. > > Related to Quentin's comment, the documentation should also describe > clear semantics > on what happens in failure case. I presume the use case you have in > mind is to use > this facility for scripts e.g. to run/load some tests objs? Thus would > be good to describe > to users what they need to do/clean up when things only partially > succeed etc.. Thanks for your comment. add in v7, please check. > >>             Note: *PATH* must be located in *bpffs* mount. It must not >>             contain a dot character ('.'), which is reserved for future >>             extensions of *bpffs*. >> > >