Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp2794792rwe; Sun, 28 Aug 2022 23:25:58 -0700 (PDT) X-Google-Smtp-Source: AA6agR6nldeSR3Eg2+wfhb1nYaLB1kdX3qcU1Lz+RPKaV9dEEM0Yt0L8JkV5Z/2VTuRf62rSeHii X-Received: by 2002:a05:6402:5388:b0:435:71b:5d44 with SMTP id ew8-20020a056402538800b00435071b5d44mr14797684edb.364.1661754358734; Sun, 28 Aug 2022 23:25:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661754358; cv=none; d=google.com; s=arc-20160816; b=r07i5EPPPCaPRys2uVYLxusp1+8D1dJFODJ29NnY3vAMpVpbaILOgGWXw7YEig/VQh Ip8hQYwJJjp6Qs43lQzvAi1GhXOvMDQHml7Kn10OPkTiXPnKR5D5ydEHD/nbupFCkWN2 hvpkYW+HrmQeauE13gRYetqa1Vl2O7L2HH5B0gVIAGkKYumXGh+hdXIJDRg2s4ea3zHy yyNmHLxdsZ5LB0mGZC8aIhdZQEWTOYLqPT9k6d+sQLdyzRlmE946jcK4Mtc6F/rINWda +/tS1JPV1W4xzVPKxDJqLv8MpnBnDvOIt/mC3PmGQDtW3mD5AG0cI47yRTxxLNZT/kL9 jGTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=EhsVwddQ4Z0p07eFvQrAKdD+jWldPYCI5wiLktE25pI=; b=zo4sio3rUOhKyh6SKuXjgzyJz0a1SVGDJLoGSeNDgCUFEuf4zRMOHHHk2CrG0f6nnd gPe52jlZ14OZN2MnKK9NmQHUrwFv6nQ6QBsCqsbwdwppHLutey8/DnSrZBx5x2gPJVwF nYHFm/a+tbtv23qz8dtX9F2kF5Iv7BGDUrp6WWz5MJ9n27T7wShmvI8RFTedTGcfQs8O 65psCyLo1NyikMsQmLrYwMBxrzd+HrXKtTzrz35TmZmiFa69M/EoMN0Bs5EYJ2wVuaiG hbLlevlZJWdazkYT0eke8oiEyqeBEG0dlcgx9NbBZPpqLV8ueRDtvLwjNaN+HJxHzu7W /wwQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kd5-20020a17090798c500b0073dd47c3873si1304383ejc.878.2022.08.28.23.25.33; Sun, 28 Aug 2022 23:25:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229657AbiH2FsT (ORCPT + 99 others); Mon, 29 Aug 2022 01:48:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229645AbiH2FsO (ORCPT ); Mon, 29 Aug 2022 01:48:14 -0400 Received: from out199-1.us.a.mail.aliyun.com (out199-1.us.a.mail.aliyun.com [47.90.199.1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A78F9474C6; Sun, 28 Aug 2022 22:48:11 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R101e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=chentao.kernel@linux.alibaba.com;NM=1;PH=DS;RN=12;SR=0;TI=SMTPD_---0VNXn-x8_1661752085; Received: from 30.227.91.73(mailfrom:chentao.kernel@linux.alibaba.com fp:SMTPD_---0VNXn-x8_1661752085) by smtp.aliyun-inc.com; Mon, 29 Aug 2022 13:48:06 +0800 Message-ID: <107876eb-4bfe-4d18-607c-08c16271c832@linux.alibaba.com> Date: Mon, 29 Aug 2022 13:48:05 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: Re: [PATCH] libbpf: Support raw btf placed in the default path To: Andrii Nakryiko Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org References: <1661349907-57222-1-git-send-email-chentao.kernel@linux.alibaba.com> From: Tao Chen In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, ENV_AND_HDR_SPF_MATCH,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Nakryiko, thank you for your reply. Yes, i happed to put the raw BTF made by myself in /boot on kernel4.19, unluckly it reported error. So is it possible to allow the raw BTF in /boot directly, athough we can set the specified btf location again to solve the problem with the bpf_object_open_opts interface. 
 As you say, maybe we can remove the locations[i].raw_btf check, just use the btf__parse. It looks more concise. 在 2022/8/26 上午4:26, Andrii Nakryiko 写道: > On Wed, Aug 24, 2022 at 7:05 AM chentao.ct > wrote: >> >> Now only elf btf can be placed in the default path, raw btf should >> also can be there. >> > > It's not clear what you are trying to achieve. Do you want libbpf to > attempt to load /boot/vmlinux-%1$s as raw BTF as well (so you can sort > of sneak in pregenerated BTF), or what exactly? > btf__load_vmlinux_btf() code already supports loading raw BTF, it just > needs to be explicitly specified in locations table. > > So with your change locations[i].raw_btf check doesn't make sense and > we need to clean this up. > > But first, let's discuss the use case, instead of your specific solution. > > >> Signed-off-by: chentao.ct >> --- >> tools/lib/bpf/btf.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c >> index bb1e06e..b22b5b3 100644 >> --- a/tools/lib/bpf/btf.c >> +++ b/tools/lib/bpf/btf.c >> @@ -4661,7 +4661,7 @@ struct btf *btf__load_vmlinux_btf(void) >> } locations[] = { >> /* try canonical vmlinux BTF through sysfs first */ >> { "/sys/kernel/btf/vmlinux", true /* raw BTF */ }, >> - /* fall back to trying to find vmlinux ELF on disk otherwise */ >> + /* fall back to trying to find vmlinux RAW/ELF on disk otherwise */ >> { "/boot/vmlinux-%1$s" }, >> { "/lib/modules/%1$s/vmlinux-%1$s" }, >> { "/lib/modules/%1$s/build/vmlinux" }, >> @@ -4686,7 +4686,7 @@ struct btf *btf__load_vmlinux_btf(void) >> if (locations[i].raw_btf) >> btf = btf__parse_raw(path); >> else >> - btf = btf__parse_elf(path, NULL); >> + btf = btf__parse(path, NULL); >> err = libbpf_get_error(btf); >> pr_debug("loading kernel BTF '%s': %d\n", path, err); >> if (err) >> -- >> 2.2.1 >>