On Thu, Oct 21, 2021 at 04:24:33PM -0700, Alexei Starovoitov wrote: > On Thu, Oct 21, 2021 at 3:40 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > > On Thu, Oct 21, 2021 at 11:03:33AM -0700, Alexei Starovoitov wrote: > > > > > > I nicked it from emit_bpf_tail_call() in the 32bit jit :-) It seemed a > > > > lot more robust than the 64bit one and I couldn't figure out why the > > > > difference. > > > > > > Interesting. Daniel will recognize that trick then :) > > > > > > Is there concurrency on the jit? > > > > > > The JIT of different progs can happen in parallel. > > > > In that case I don't think the patch is safe. I'll see if I can find a > > variant that doesn't use static storage. > > The variable can only change from one fixed value to another fixed value. > Different threads will compute the same value. So I think it's safe > as-is. READ_ONCE/WRITE_ONCE won't hurt though. But the size of the generated code differs based on the emit_bpf_tail_call_indirect() args: 'callee_regs_used' and 'stack_depth'. So the fixed value can change. -- Josh