All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin KaFai Lau <martin.lau@linux.dev>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	Eduard Zingerman <eddyz87@gmail.com>
Cc: bpf <bpf@vger.kernel.org>, Alexei Starovoitov <ast@kernel.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Yonghong Song <yonghong.song@linux.dev>,
	Amery Hung <ameryhung@gmail.com>,
	Kernel Team <kernel-team@meta.com>
Subject: Re: [PATCH v4 bpf-next 1/9] bpf: Move insn_buf[16] to bpf_verifier_env
Date: Thu, 29 Aug 2024 08:20:28 -0700	[thread overview]
Message-ID: <bff92d52-344e-46bf-ac0c-f03e1b22d22b@linux.dev> (raw)
In-Reply-To: <CAADnVQKfuWjpDxL=0OYMe_u37tTpPgPUW3-5L7X-QVUGh5x1gw@mail.gmail.com>

On 8/28/24 6:46 PM, Alexei Starovoitov wrote:
> On Wed, Aug 28, 2024 at 5:41 PM Eduard Zingerman <eddyz87@gmail.com> wrote:
>>
>> On Tue, 2024-08-27 at 12:48 -0700, Martin KaFai Lau wrote:
>>> From: Martin KaFai Lau <martin.lau@kernel.org>
>>>
>>> This patch moves the 'struct bpf_insn insn_buf[16]' stack usage
>>> to the bpf_verifier_env. A '#define INSN_BUF_SIZE 16' is also added
>>> to replace the ARRAY_SIZE(insn_buf) usages.
>>>
>>> Both convert_ctx_accesses() and do_misc_fixup() are changed
>>> to use the env->insn_buf.
>>>
>>> It is a prep work for adding the epilogue_buf[16] in a later patch.
>>>
>>> Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
>>> ---
>>
>> Not sure if this refactoring is worth it but code looks correct.
>> Note that there is also inline_bpf_loop()
>> (it needs a slightly bigger buffer).
> 
> Probably worth it in the follow up, since people complain that
> this or that function in verifier.c reaches stack size limit
> when compiled with sanitizers.
> These buffers on stack are the biggest consumers.

ok. I will drop this patch for now. Redo it again as a followup and will 
consider inline_bpf_loop() together at that time.

Regarding the stack size, I did notice the compilation warning difference on the 
stack size which I should have put in the commit message.

Before:
./kernel/bpf/verifier.c:22133:5: warning: stack frame size (2584) exceeds limit 
(2048) in 'bpf_check' [-Wframe-larger-than]

After:
./kernel/bpf/verifier.c:22184:5: warning: stack frame size (2264) exceeds limit 
(2048) in 'bpf_check' [-Wframe-larger-than]


  reply	other threads:[~2024-08-29 15:20 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-27 19:48 [PATCH v4 bpf-next 0/9] bpf: Add gen_epilogue to bpf_verifier_ops Martin KaFai Lau
2024-08-27 19:48 ` [PATCH v4 bpf-next 1/9] bpf: Move insn_buf[16] to bpf_verifier_env Martin KaFai Lau
2024-08-29  0:41   ` Eduard Zingerman
2024-08-29  1:46     ` Alexei Starovoitov
2024-08-29 15:20       ` Martin KaFai Lau [this message]
2024-08-29 15:26         ` Alexei Starovoitov
2024-08-29 15:33           ` Martin KaFai Lau
2024-08-27 19:48 ` [PATCH v4 bpf-next 3/9] bpf: Add gen_epilogue to bpf_verifier_ops Martin KaFai Lau
2024-08-29  2:26   ` Eduard Zingerman
2024-08-29 15:47     ` Martin KaFai Lau
2024-08-27 19:48 ` [PATCH v4 bpf-next 4/9] bpf: Export bpf_base_func_proto Martin KaFai Lau
2024-08-27 19:48 ` [PATCH v4 bpf-next 5/9] selftests/bpf: attach struct_ops maps before test prog runs Martin KaFai Lau
2024-08-27 19:48 ` [PATCH v4 bpf-next 6/9] selftests/bpf: Test gen_prologue and gen_epilogue Martin KaFai Lau
2024-08-29  7:27   ` Eduard Zingerman
2024-08-29 17:35     ` Martin KaFai Lau
2024-08-27 19:48 ` [PATCH v4 bpf-next 7/9] selftests/bpf: Add tailcall epilogue test Martin KaFai Lau
2024-08-29  6:16   ` Eduard Zingerman
2024-08-29 18:15     ` Martin KaFai Lau
2024-08-27 19:48 ` [PATCH v4 bpf-next 8/9] selftests/bpf: A pro/epilogue test when the main prog jumps back to the 1st insn Martin KaFai Lau
2024-08-29  6:21   ` Eduard Zingerman
2024-08-27 19:48 ` [PATCH v4 bpf-next 9/9] selftests/bpf: Test epilogue patching when the main prog has multiple BPF_EXIT Martin KaFai Lau
2024-08-28  0:58   ` Martin KaFai Lau
2024-08-29  6:28     ` Eduard Zingerman
2024-08-29 20:09       ` Martin KaFai Lau
2024-08-29  6:25   ` Eduard Zingerman
2024-08-27 19:52 ` [PATCH v4 bpf-next 2/9] bpf: Adjust BPF_JMP that jumps to the 1st insn of the prologue Martin KaFai Lau
2024-08-28 16:48   ` Alexei Starovoitov
2024-08-28 17:44     ` Martin KaFai Lau
2024-08-28 18:43       ` Alexei Starovoitov
2024-08-28 18:59         ` Martin KaFai Lau
     [not found] ` <20240827194834.1423815-3-martin.lau@linux.dev>
2024-08-29  2:01   ` Eduard Zingerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bff92d52-344e-46bf-ac0c-f03e1b22d22b@linux.dev \
    --to=martin.lau@linux.dev \
    --cc=alexei.starovoitov@gmail.com \
    --cc=ameryhung@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=eddyz87@gmail.com \
    --cc=kernel-team@meta.com \
    --cc=yonghong.song@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.