On Wed, Mar 9, 2022 at 5:01 PM Hou Tao <houtao1@xxxxxxxxxx> wrote: > > Hi, > > On 3/10/2022 7:22 AM, Alexei Starovoitov wrote: > > On Wed, Mar 09, 2022 at 08:33:20PM +0800, Hou Tao wrote: > >> 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. patch 2 is a hack that should not happen in a correct JIT.