From: Hari Bathini <hbathini@linux.ibm.com>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
bpf <bpf@vger.kernel.org>,
linux-trace-kernel <linux-trace-kernel@vger.kernel.org>,
Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
"Naveen N. Rao" <naveen@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Daniel Borkmann <daniel@iogearbox.net>,
Masahiro Yamada <masahiroy@kernel.org>,
Nicholas Piggin <npiggin@gmail.com>,
Alexei Starovoitov <ast@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Andrii Nakryiko <andrii@kernel.org>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Vishal Chourasia <vishalc@linux.ibm.com>,
Mahesh J Salgaonkar <mahesh@linux.ibm.com>,
Masami Hiramatsu <mhiramat@kernel.org>
Subject: Re: [PATCH v5 17/17] powerpc64/bpf: Add support for bpf trampolines
Date: Tue, 1 Oct 2024 12:48:32 +0530 [thread overview]
Message-ID: <7afc9cc7-95cd-45c7-b748-28040206d9a0@linux.ibm.com> (raw)
In-Reply-To: <CAADnVQKfSH_zkP0-TwOB_BLxCBH9efot9mk03uRuooCTMmWnWA@mail.gmail.com>
On 30/09/24 6:25 pm, Alexei Starovoitov wrote:
> On Sun, Sep 29, 2024 at 10:33 PM Hari Bathini <hbathini@linux.ibm.com> wrote:
>>
>>
>>
>> On 17/09/24 1:20 pm, Alexei Starovoitov wrote:
>>> On Sun, Sep 15, 2024 at 10:58 PM Hari Bathini <hbathini@linux.ibm.com> wrote:
>>>>
>>>> +
>>>> + /*
>>>> + * Generated stack layout:
>>>> + *
>>>> + * func prev back chain [ back chain ]
>>>> + * [ ]
>>>> + * bpf prog redzone/tailcallcnt [ ... ] 64 bytes (64-bit powerpc)
>>>> + * [ ] --
>>> ...
>>>> +
>>>> + /* Dummy frame size for proper unwind - includes 64-bytes red zone for 64-bit powerpc */
>>>> + bpf_dummy_frame_size = STACK_FRAME_MIN_SIZE + 64;
>>>
>>> What is the goal of such a large "red zone" ?
>>> The kernel stack is a limited resource.
>>> Why reserve 64 bytes ?
>>> tail call cnt can probably be optional as well.
>>
>> Hi Alexei, thanks for reviewing.
>> FWIW, the redzone on ppc64 is 288 bytes. BPF JIT for ppc64 was using
>> a redzone of 80 bytes since tailcall support was introduced [1].
>> It came down to 64 bytes thanks to [2]. The red zone is being used
>> to save NVRs and tail call count when a stack is not setup. I do
>> agree that we should look at optimizing it further. Do you think
>> the optimization should go as part of PPC64 trampoline enablement
>> being done here or should that be taken up as a separate item, maybe?
>
> The follow up is fine.
> It just odd to me that we currently have:
>
> [ unused red zone ] 208 bytes protected
>
> I simply don't understand why we need to waste this much stack space.
> Why can't it be zero today ?
>
The ABI for ppc64 has a redzone of 288 bytes below the current
stack pointer that can be used as a scratch area until a new
stack frame is created. So, no wastage of stack space as such.
It is just red zone that can be used before a new stack frame
is created. The comment there is only to show how redzone is
being used in ppc64 BPF JIT. I think the confusion is with the
mention of "208 bytes" as protected. As not all of that scratch
area is used, it mentions the remaining as unused. Essentially
288 bytes below current stack pointer is protected from debuggers
and interrupt code (red zone). Note that it should be 224 bytes
of unused red zone instead of 208 bytes as red zone usage in
ppc64 BPF JIT come down from 80 bytes to 64 bytes since [2].
Hope that clears the misunderstanding..
>> [1]
>> https://lore.kernel.org/all/40b65ab2bb3a48837ab047a70887de3ccd70c56b.1474661927.git.naveen.n.rao@linux.vnet.ibm.com/
>> [2] https://lore.kernel.org/all/20180503230824.3462-11-daniel@iogearbox.net/
>>
Thanks
Hari
next prev parent reply other threads:[~2024-10-01 7:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-15 20:56 [PATCH v5 00/17] powerpc: Core ftrace rework, support for ftrace direct and bpf trampolines Hari Bathini
2024-09-15 20:56 ` [PATCH v5 01/17] powerpc/trace: Account for -fpatchable-function-entry support by toolchain Hari Bathini
2024-09-15 20:56 ` [PATCH v5 02/17] powerpc/kprobes: Use ftrace to determine if a probe is at function entry Hari Bathini
2024-09-15 20:56 ` [PATCH v5 03/17] powerpc64/ftrace: Nop out additional 'std' instruction emitted by gcc v5.x Hari Bathini
2024-09-15 20:56 ` [PATCH v5 04/17] powerpc32/ftrace: Unify 32-bit and 64-bit ftrace entry code Hari Bathini
2024-09-15 20:56 ` [PATCH v5 05/17] powerpc/module_64: Convert #ifdef to IS_ENABLED() Hari Bathini
2024-09-15 20:56 ` [PATCH v5 06/17] powerpc/ftrace: Remove pointer to struct module from dyn_arch_ftrace Hari Bathini
2024-09-15 20:56 ` [PATCH v5 07/17] powerpc/ftrace: Skip instruction patching if the instructions are the same Hari Bathini
2024-09-15 20:56 ` [PATCH v5 08/17] powerpc/ftrace: Move ftrace stub used for init text before _einittext Hari Bathini
2024-09-15 20:56 ` [PATCH v5 09/17] powerpc64/bpf: Fold bpf_jit_emit_func_call_hlp() into bpf_jit_emit_func_call_rel() Hari Bathini
2024-09-15 20:56 ` [PATCH v5 10/17] powerpc/ftrace: Add a postlink script to validate function tracer Hari Bathini
2024-09-15 20:56 ` [PATCH v5 11/17] kbuild: Add generic hook for architectures to use before the final vmlinux link Hari Bathini
2024-10-09 15:23 ` Masahiro Yamada
2024-10-10 9:56 ` Hari Bathini
2024-10-10 11:37 ` Masahiro Yamada
2024-10-24 17:20 ` Hari Bathini
2024-09-15 20:56 ` [PATCH v5 12/17] powerpc64/ftrace: Move ftrace sequence out of line Hari Bathini
2024-10-09 15:35 ` Masahiro Yamada
2024-09-15 20:56 ` [PATCH v5 13/17] powerpc64/ftrace: Support .text larger than 32MB with out-of-line stubs Hari Bathini
2024-10-09 15:36 ` Masahiro Yamada
2024-09-15 20:56 ` [PATCH v5 14/17] powerpc/ftrace: Add support for DYNAMIC_FTRACE_WITH_CALL_OPS Hari Bathini
2024-09-15 20:56 ` [PATCH v5 15/17] powerpc/ftrace: Add support for DYNAMIC_FTRACE_WITH_DIRECT_CALLS Hari Bathini
2024-09-15 20:56 ` [PATCH v5 16/17] samples/ftrace: Add support for ftrace direct samples on powerpc Hari Bathini
2024-09-15 20:56 ` [PATCH v5 17/17] powerpc64/bpf: Add support for bpf trampolines Hari Bathini
2024-09-16 21:41 ` kernel test robot
2024-09-17 7:50 ` Alexei Starovoitov
2024-09-30 5:33 ` Hari Bathini
2024-09-30 12:55 ` Alexei Starovoitov
2024-10-01 7:18 ` Hari Bathini [this message]
2024-10-01 14:53 ` Alexei Starovoitov
2024-10-03 5:33 ` Hari Bathini
2024-10-10 0:18 ` Michael Ellerman
2024-10-10 9:39 ` Hari Bathini
2024-10-10 9:46 ` Hari Bathini
2024-10-28 5:46 ` Michael Ellerman
2024-10-09 15:46 ` [PATCH v5 00/17] powerpc: Core ftrace rework, support for ftrace direct and " Masahiro Yamada
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=7afc9cc7-95cd-45c7-b748-28040206d9a0@linux.ibm.com \
--to=hbathini@linux.ibm.com \
--cc=alexei.starovoitov@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=daniel@iogearbox.net \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mahesh@linux.ibm.com \
--cc=mark.rutland@arm.com \
--cc=masahiroy@kernel.org \
--cc=mhiramat@kernel.org \
--cc=naveen@kernel.org \
--cc=npiggin@gmail.com \
--cc=rostedt@goodmis.org \
--cc=vishalc@linux.ibm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).