[PATCH bpf-next] riscv, bpf: Optimize stack usage of trampoline
Pu Lehui
pulehui at huawei.com
Mon Jul 8 05:02:06 PDT 2024
On 2024/7/8 19:47, Puranjay Mohan wrote:
> When BPF_TRAMP_F_CALL_ORIG is not set, stack space for passing arguments
> on stack doesn't need to be reserved because the original function is
> not called.
>
> Only reserve space for stacked arguments when BPF_TRAMP_F_CALL_ORIG is
> set.
>
> Signed-off-by: Puranjay Mohan <puranjay at kernel.org>
> ---
> arch/riscv/net/bpf_jit_comp64.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/net/bpf_jit_comp64.c b/arch/riscv/net/bpf_jit_comp64.c
> index 685c7389ae7e..0795efdd3519 100644
> --- a/arch/riscv/net/bpf_jit_comp64.c
> +++ b/arch/riscv/net/bpf_jit_comp64.c
> @@ -892,7 +892,7 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im,
> stack_size += 8;
> sreg_off = stack_size;
>
> - if (nr_arg_slots - RV_MAX_REG_ARGS > 0)
> + if ((flags & BPF_TRAMP_F_CALL_ORIG) && (nr_arg_slots - RV_MAX_REG_ARGS > 0))
> stack_size += (nr_arg_slots - RV_MAX_REG_ARGS) * 8;
>
> stack_size = round_up(stack_size, STACK_ALIGN);
Thanks!
Acked-by: Pu Lehui <pulehui at huawei.com>
More information about the linux-riscv
mailing list