Thread (12 messages) 12 messages, 4 authors, 2022-03-16

Re: [PATCH bpf-next 3/4] bpf: Fix net.core.bpf_jit_harden race

From: Hou Tao <hidden>
Date: 2022-03-10 03:48:53
Also in: bpf

Hi,

On 3/10/2022 11:29 AM, Alexei Starovoitov wrote:
On Wed, Mar 9, 2022 at 5:01 PM Hou Tao [off-list ref] wrote:
quoted
Hi,

On 3/10/2022 7:22 AM, Alexei Starovoitov wrote:
quoted
On Wed, Mar 09, 2022 at 08:33:20PM +0800, Hou Tao wrote:
quoted
It is the bpf_jit_harden counterpart to commit 60b58afc96c9 ("bpf: fix
net.core.bpf_jit_enable race"). bpf_jit_harden will be tested twice
for each subprog if there are subprogs in bpf program and constant
blinding may increase the length of program, so when running
"./test_progs -t subprogs" and toggling bpf_jit_harden between 0 and 2,
jit_subprogs may fail because constant blinding increases the length
of subprog instructions during extra passs.

So cache the value of bpf_jit_blinding_enabled() during program
allocation, and use the cached value during constant blinding, subprog
JITing and args tracking of tail call.
Looks like this patch alone is enough.
With race fixed. Patches 1 and 2 are no longer necessary, right?
Yes and no. With patch 3 applied, the problems described in patch 1 and patch 2
are gone, but it may recur due to other issue in JIT. So I post these two patch
together and hope these fixes can also be merged.
What kind of 'issues in JIT'?
I'd rather fix them than do defensive programming.
Understand. For "issues in JIT" I just mean all kinds of error path handling in
jit, not a real problem.
patch 2 is a hack that should not happen in a correct JIT.
.
And "the hack" is partially due to the introduction of an extra pass in JIT. So
I am fine to drop it.

Regards,
Tao

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help