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=-7.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no 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 6999FC432BE for ; Wed, 1 Sep 2021 03:38:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 408C960EBB for ; Wed, 1 Sep 2021 03:38:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241812AbhIADjI (ORCPT ); Tue, 31 Aug 2021 23:39:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241811AbhIADjH (ORCPT ); Tue, 31 Aug 2021 23:39:07 -0400 Received: from mail-yb1-xb2d.google.com (mail-yb1-xb2d.google.com [IPv6:2607:f8b0:4864:20::b2d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0C55C061575; Tue, 31 Aug 2021 20:38:11 -0700 (PDT) Received: by mail-yb1-xb2d.google.com with SMTP id f15so2512840ybg.3; Tue, 31 Aug 2021 20:38:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nvD84ugqQhro2PABRBkxd/oqt9jOPsun4IafVjYuMAo=; b=o6ijO5e6ux1f1tC8Z5VjaI/1QJ9tDBeUvEY8lPIWKyzZx+xNlRTZ7DgxhIkWHbZUEP erUKuC4Kvm/f0eAWFzB8FqJLPZj2rstzf1Nlf7WrI7ao74JIXrY+kqnquZs0kqQ+fON2 MtQpZgcFyoSoy2CwA9n0cKwnXXzh0mfj8ojgUBTSTxxHF+5lEva2u5mEZzfLcszFAlg0 RxMTjXaTHRHcGM+L0+CEcp/tTR6oJqgTPCZwqIwKT5YmtSMXcvtIQbrJwgEYvUsNh3HU 0I2Cucb0wp2E92PyQvIuc/z+6fKSOxwmDmq053csePt2KGqY1uJrltRNEyTeOs3vN4yW 48kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nvD84ugqQhro2PABRBkxd/oqt9jOPsun4IafVjYuMAo=; b=N5BWzzCgK9jdKk1f5awCPQ+8O2K6jvD8vpkZCB/lx6sVx34oFltA+g6uoZ5m9jqIaw TaETE9ay5GPDUNZFZ+g5St3f4bY5wBQsIlfHSDUWGOnfK2hfPnHNhRdxCImuQkAPe1cm ganASYyLG+G2HG0qCy2g7DxzrGaF4NSbBFwCT4tVCjokGHUTm7oMc9MH+M5T8tEZbqae 2kzpbBtVyxamudcZKTeyyBpEnWQ/dEDBKfis2l9NLHcqos2V2iPXtm4QLgnihWcxoq3Y lfriISEAoO4KCBBLgctv/iZP25Vvt6omDVmRp6ARn/5z1lqUTLKC9+gss5aT7/vcgrou JILQ== X-Gm-Message-State: AOAM530Rb9DajuXExpG01Q7vJa5unmsZNMTPqJNT2ITeT9JqtDxmdhVf vbf8z+liBBq74fZoejHWxRIK6d4QHMD9VBKFi6E= X-Google-Smtp-Source: ABdhPJxvjgan2QF6MzekFlP5IW4JeqbpUT1xrImBZG2OUF19EfUCuOtl3tThOt005xgprmBtIhKzAZ8AcquBeQooR8o= X-Received: by 2002:a25:16c6:: with SMTP id 189mr34949672ybw.27.1630467490997; Tue, 31 Aug 2021 20:38:10 -0700 (PDT) MIME-Version: 1.0 References: <20210830173424.1385796-1-memxor@gmail.com> <20210830173424.1385796-4-memxor@gmail.com> <20210901022701.g7nzkmm6lo7jf3wd@apollo.localdomain> In-Reply-To: From: Andrii Nakryiko Date: Tue, 31 Aug 2021 20:38:00 -0700 Message-ID: Subject: Re: [PATCH bpf-next RFC v1 3/8] libbpf: Support kernel module function calls To: Alexei Starovoitov Cc: Kumar Kartikeya Dwivedi , bpf , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , Jesper Dangaard Brouer , =?UTF-8?B?VG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2Vu?= , Networking Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org On Tue, Aug 31, 2021 at 7:59 PM Alexei Starovoitov wrote: > > On Tue, Aug 31, 2021 at 7:27 PM Kumar Kartikeya Dwivedi > wrote: > > > > @@ -5327,6 +5340,7 @@ bpf_object__relocate_data(struct bpf_object *obj, struct bpf_program *prog) > > > > ext = &obj->externs[relo->sym_off]; > > > > insn[0].src_reg = BPF_PSEUDO_KFUNC_CALL; > > > > insn[0].imm = ext->ksym.kernel_btf_id; > > > > + insn[0].off = ext->ksym.offset; > > > > > > Just a few lines above we use insn[1].imm = > > > ext->ksym.kernel_btf_obj_fd; for EXT_KSYM (for variables). Why are you > > > inventing a new form if we already have a pretty consistent pattern? > > > > > > > That makes sense. This is all new to me, so I went with what was described in > > e6ac2450d6de (bpf: Support bpf program calling kernel function), but I'll rework > > it to encode the btf fd like that in the next spin. It also makes the everything > > far simpler. > > Hmm. kfunc call is a call insn. There is no imm[1]. Doh, right :( Never mind, we'll need to use fd_array for this. Either way, I don't think hashmap use is warranted here to find a BTF slot. Let's just do linear search, it's not like we are going to have thousands of module BTFs used by any single BPF program, right?