Re: [PATCH v3 0/2] LoongArch: BPF: per-CPU address resolution and timed may_goto
Huacai Chen <[email protected]> Wed, 5 Aug 2026 15:11:31 +0800
| Newsgroups | org.kernel.vger.bpf,dev.linux.lists.loongarch,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAAhV-H7aPXsN_jami_2MKJ9CTcpr8YviSJXUxT8s1GMRUEP7wA@mail.gmail.com> |
Hi, George, In V1 it is independent, In V2 it is part of https://lore.kernel.org/loongarch/[email protected]/T/#t In V3 it is independent again. What do you want? You can ask Tiezhu and Hengqi to review your patches, but don't do such confusing things. Huacai On Tue, Aug 4, 2026 at 11:46 PM George Guo <[email protected]> wrote: > > These are the first two patches of the LoongArch BPF JIT feature work, > sent on their own to make review easier. The remaining pieces > (per-program private stacks, exceptions/bpf_throw, sign-extending loads > and atomics on arena pointers, and the matching selftests) will follow in > a later series. > > Both patches are independent of each other. They apply on top of Chenguang > Zhao's "LoongArch bpf kptr xchg inline support" v4 series: > > https://lore.kernel.org/all/[email protected]/ > > Patch 1 adds the internal-only BPF MOV that resolves a per-CPU offset to > the current CPU's address, advertised through > bpf_jit_supports_percpu_insn(). LoongArch keeps the current CPU's per-CPU > base in $r21 (__my_cpu_offset), so the resolution is a single add. > Exercised by the cpumask and percpu_alloc selftests. > > Patch 2 implements arch_bpf_timed_may_goto() and advertises it, so the > verifier lowers may_goto to its timed variant, which bounds the loop by a > wall-clock timeout kept in a per-loop stack slot. It uses a custom calling > convention: the count/timestamp stack offset is passed in BPF_REG_AX and > returned there, so the JIT call path skips the usual "BPF_REG_0 = return > value" move for this helper. Exercised by the iters selftests. > > Selftest results (all PASS): > > Feature Test(s) > -------------------------------------------------------------- > 1 internal-only MOV (percpu) cpumask, percpu_alloc > 2 timed may_goto iters > > $ sudo ./test_progs -t cpumask > ... > Summary: 1/35 PASSED, 0 SKIPPED, 0 FAILED > > $ sudo ./test_progs -t percpu_alloc > ... > Summary: 1/18 PASSED, 0 SKIPPED, 0 FAILED > > $ sudo ./test_progs -t iters > ... > Summary: 1/93 PASSED, 0 SKIPPED, 0 FAILED > > Based on loongarch-next: > https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git/log/?h=loongarch-next > > These two patches are split from the full v2 series (11 patches): > https://lore.kernel.org/all/[email protected]/ > > George Guo (2): > LoongArch: BPF: Support internal-only MOV to resolve per-CPU addrs > LoongArch: BPF: Add timed may_goto support > > arch/loongarch/include/asm/inst.h | 1 + > arch/loongarch/net/Makefile | 2 +- > arch/loongarch/net/bpf_jit.c | 27 +++++++++++++- > arch/loongarch/net/bpf_timed_may_goto.S | 47 +++++++++++++++++++++++++ > 4 files changed, 75 insertions(+), 2 deletions(-) > create mode 100644 arch/loongarch/net/bpf_timed_may_goto.S > > -- > 2.53.0 >