Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp4978394pxb; Wed, 26 Jan 2022 01:58:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJysDmXBwpcdLjqc2DMXlBXATcjAHObhWuUXbyc6hQGDLVbfRmFPdrgQBqQRWKrWOXF4p5Ya X-Received: by 2002:a63:6b8a:: with SMTP id g132mr4291538pgc.150.1643191119809; Wed, 26 Jan 2022 01:58:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643191119; cv=none; d=google.com; s=arc-20160816; b=Jn9hmtRnzHs0BYXvflKv47BN6lstTTHn/9rRypf0gySzqNX9y076htCsWnsG0NaTw3 PvaXOueMpgNk+4ppUjur0je/NOJqv7fzohWVsggNxYpoX5NL9piki7EGyeyxmsfIiMu1 K2X6+m8OJvR9+GN4f0UG6OStrb+z5vV/As66tScGvUCyx2blTJ2zbeWVu7pFUX4wMZgC qqm087KEkWzlgcNXTZFIV9fnnidmdG7EthI74AvpzhBILer9h2MwJuKpPsWud2xuediS 9bbtonnuJpdK0J26xl3kf4YKfZzJDEKAaN3yF88/iVAPwi8xVc2TxdWERJ9vCcvKD2Yy UlXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=h5SSh6nJHHvPVmsJSI+vEXdltA1GV2tgb9vC7RDs5Dw=; b=WamBuZThYBmSitjZrD9sclyHAeM6PbgWlif7+4Nhziu9O1OxGRofsp38RofdmGrnvZ aebTUroclrqMuI5p0ynZq6xWUX2CdeXYUycBFByp4z9Lw/1ORgsGCRvEr+4b6kKVb21U T5TBzZc+sK5tN0NwaBwdLGaUNMFx1JgV2Z3g9x8g84rOS6UFgcK23IarNYq6i9Qt8DiV TC9v4w3H2gFCrXJk1CjzAMIh9HCQ8jGCawK4PQ8paMerQrkhOsxz8kU9ymDtMRTfhSIJ TuT8HdgcsqlKgAdj79b7dbvY1W6xGZv0Pr2EGibE8ROIacUkdqcFDEpS1kYYaPuwM1ZI 7hSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=ecg4PDMz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f5si19403033pgl.459.2022.01.26.01.58.28; Wed, 26 Jan 2022 01:58:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=ecg4PDMz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233110AbiAYV1a (ORCPT + 99 others); Tue, 25 Jan 2022 16:27:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233099AbiAYV13 (ORCPT ); Tue, 25 Jan 2022 16:27:29 -0500 Received: from mail-qt1-x829.google.com (mail-qt1-x829.google.com [IPv6:2607:f8b0:4864:20::829]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78AE8C06173B for ; Tue, 25 Jan 2022 13:27:29 -0800 (PST) Received: by mail-qt1-x829.google.com with SMTP id v5so10143579qto.7 for ; Tue, 25 Jan 2022 13:27:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=h5SSh6nJHHvPVmsJSI+vEXdltA1GV2tgb9vC7RDs5Dw=; b=ecg4PDMzVWLxJkebhbl1fQpefiKywwl9qWbu4wGisfvshkHU8Je5+O+eBQkwffkjYS mkpasBUqDZb9584KWqzLYP07Y2gg/6hstu6VoOAVasDyvxGyr2YLdQoXAde1NliSiG/l U2vOcLTWgrN6SSRwn2bNGhPhPmyqjksasUX4XeasmykLTmdsbDV96ocfm+W7u6FCwt/u 0W8zv8P2B6VbgPC0lE4C7ANmp2ThA3fTFbFFI2l7Elgssx4tkKqIYZthJ2uUkADpbCjb WiyA3qj1MaHdlkwNQ3nZtY4VDLxziKOX+FF2ipVV99OAkfrEBdAKeHVxa++Yhovq6tdh KxHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=h5SSh6nJHHvPVmsJSI+vEXdltA1GV2tgb9vC7RDs5Dw=; b=qyLCa+j1BI9UKMIGlHvTFM4wYBhG8fSkw3viX4Aji3uITl8QSYaHDnhgQLojhjdkH+ ISQUHq6HnZlL0o62Chi2Vm2bxy1RjTeBYf2+f5OXbjMbnfIUpPtWPzv5Hrh4ecwyfV86 8FWtJ0rxWdPxFLTVZYKcsjmcoRB7QRKnnG+2TpZb5Tp5nkt9GD2YCh146RluUDI6hgba PPIWT0IJxvX01FsplUkS+6kpy3JLWBtHp3DHtrX9wCAgQWGOSlG9DknUQjNta2Dopx+L bwNNI/Pxhr+dKvJ3GbxgUrjXcyhCU+juPz4gpAkBxQQu7bW5whCXhJkUsoZN1eLMh0rg rp1g== X-Gm-Message-State: AOAM530xKTpnlFzVTmomEICOFSbatdH7VkLCIBHMtrQa+d6c+WrzGXmM Z/q9T4fSu9dcJRqxLXyZ7UOEd2HscVz/RgZxWQ9EGw== X-Received: by 2002:ac8:1083:: with SMTP id a3mr18184689qtj.125.1643146047873; Tue, 25 Jan 2022 13:27:27 -0800 (PST) MIME-Version: 1.0 References: <634c2c87-84c9-0254-3f12-7d993037495c@gmail.com> <92f69969-42dc-204a-4138-16fdaaebb78d@gmail.com> <7ca623df-73ed-9191-bec7-a4728f2f95e6@gmail.com> <20211216181449.p2izqxgzmfpknbsw@kafai-mbp.dhcp.thefacebook.com> <9b8632f9-6d7a-738f-78dc-0287d441d1cc@gmail.com> In-Reply-To: From: Stanislav Fomichev Date: Tue, 25 Jan 2022 13:27:17 -0800 Message-ID: Subject: Re: [PATCH v3] cgroup/bpf: fast path skb BPF filtering To: Pavel Begunkov Cc: Martin KaFai Lau , netdev@vger.kernel.org, bpf@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Song Liu , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 25, 2022 at 10:55 AM Pavel Begunkov wrote: > > On 1/24/22 18:25, Stanislav Fomichev wrote: > > On Mon, Jan 24, 2022 at 7:49 AM Pavel Begunkov wrote: > >> > >> On 12/16/21 18:24, Stanislav Fomichev wrote: > >>> On Thu, Dec 16, 2021 at 10:14 AM Martin KaFai Lau wrote: > >>>> On Thu, Dec 16, 2021 at 01:21:26PM +0000, Pavel Begunkov wrote: > >>>>> On 12/15/21 22:07, Stanislav Fomichev wrote: > >>>>>>> I'm skeptical I'll be able to measure inlining one function, > >>>>>>> variability between boots/runs is usually greater and would hide it. > >>>>>> > >>>>>> Right, that's why I suggested to mirror what we do in set/getsockopt > >>>>>> instead of the new extra CGROUP_BPF_TYPE_ENABLED. But I'll leave it up > >>>>>> to you, Martin and the rest. > >>>> I also suggested to try to stay with one way for fullsock context in v2 > >>>> but it is for code readability reason. > >>>> > >>>> How about calling CGROUP_BPF_TYPE_ENABLED() just next to cgroup_bpf_enabled() > >>>> in BPF_CGROUP_RUN_PROG_*SOCKOPT_*() instead ? > >>> > >>> SG! > >>> > >>>> It is because both cgroup_bpf_enabled() and CGROUP_BPF_TYPE_ENABLED() > >>>> want to check if there is bpf to run before proceeding everything else > >>>> and then I don't need to jump to the non-inline function itself to see > >>>> if there is other prog array empty check. > >>>> > >>>> Stan, do you have concern on an extra inlined sock_cgroup_ptr() > >>>> when there is bpf prog to run for set/getsockopt()? I think > >>>> it should be mostly noise from looking at > >>>> __cgroup_bpf_run_filter_*sockopt()? > >>> > >>> Yeah, my concern is also mostly about readability/consistency. Either > >>> __cgroup_bpf_prog_array_is_empty everywhere or this new > >>> CGROUP_BPF_TYPE_ENABLED everywhere. I'm slightly leaning towards > >>> __cgroup_bpf_prog_array_is_empty because I don't believe direct > >>> function calls add any visible overhead and macros are ugly :-) But > >>> either way is fine as long as it looks consistent. > >> > >> Martin, Stanislav, do you think it's good to go? Any other concerns? > >> It feels it might end with bikeshedding and would be great to finally > >> get it done, especially since I find the issue to be pretty simple. > > > > I'll leave it up to the bpf maintainers/reviewers. Personally, I'd > > still prefer a respin with a consistent > > __cgroup_bpf_prog_array_is_empty or CGROUP_BPF_TYPE_ENABLED everywhere > > (shouldn't be a lot of effort?) > > I can make CGROUP_BPF_TYPE_ENABLED() used everywhere, np. > > I'll leave out unification with cgroup_bpf_enabled() as don't > really understand the fullsock dancing in > BPF_CGROUP_RUN_PROG_INET_EGRESS(). Any idea whether it's needed > and/or how to shove it out of inlined checks? I'm not sure we can do anything better than whatever you did in your patch. This request_sk->full_sk conversion is needed because request_sk doesn't really have any cgroup association and we need to pull it from the listener ("full_sk"). So you wave to get full_sk and then run CGROUP_BPF_TYPE_ENABLED on it.