[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20180116193519.phasggrpe653eqr2@ast-mbp.dhcp.thefacebook.com>
Date: Tue, 16 Jan 2018 11:35:21 -0800
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
To: Daniel Borkmann <daniel@...earbox.net>
Cc: netdev@...r.kernel.org, will.deacon@....com,
catalin.marinas@....com
Subject: Re: [PATCH bpf] bpf, arm64: fix stack_depth tracking in combination
with tail calls
On Tue, Jan 16, 2018 at 03:46:08AM +0100, Daniel Borkmann wrote:
> Using dynamic stack_depth tracking in arm64 JIT is currently broken in
> combination with tail calls. In prologue, we cache ctx->stack_size and
> adjust SP reg for setting up function call stack, and tearing it down
> again in epilogue. Problem is that when doing a tail call, the cached
> ctx->stack_size might not be the same.
>
> One way to fix the problem with minimal overhead is to re-adjust SP in
> emit_bpf_tail_call() and properly adjust it to the current program's
> ctx->stack_size. Tested on Cavium ThunderX ARMv8.
>
> Fixes: f1c9eed7f437 ("bpf, arm64: take advantage of stack_depth tracking")
> Signed-off-by: Daniel Borkmann <daniel@...earbox.net>
Tested on arm64 qcom server and applied to bpf tree.
Thank you Daniel.
Powered by blists - more mailing lists