From: Sun Yuechi <sunyue...@iscas.ac.cn> This patch series adds support for the RISC-V Vector (V) extension and provides an optimized implementation of `rte_lpm_lookupx4` using RVV.
The initialization of vtbl_entry is not fully vectorized here because doing so would require __riscv_vluxei32_v_u32m1, which is slower than the scalar approach in this small-scale scenario. - Test: app/test/lpm_perf_autotest - Platform: Banana Pi BPI-F3 - SoC: Spacemit X60 (8 cores with Vector extension) - CPU Frequency: up to 1.6 GHz - Cache: 256 KiB L1d ×8, 256 KiB L1i ×8, 1 MiB L2 ×2 - Memory: 16 GiB - Kernel: Linux 6.6.36 - Compiler: GCC 14.2.0 (with RVV intrinsic support) Test results(LPM LookupX4): scalar: 5.7 cycles rvv: 4.6 cycles v5: - Updated the commit message and moved test details and thoughts to the cover letter. v4: - Keep the LPM code consistent, use a static inline function instead of runtime detection. - Update the commit message. - Update the .mailmap file. v3: - Due to previous SMTP server restrictions, patches could not be sent as a proper series. This version re-sends the same patches as a series. No code changes. v2: - Improved commit messages. Sun Yuechi (3): config/riscv: detect V extension lib/lpm: R-V V rte_lpm_lookupx4 riscv: override machine_args only when default .mailmap | 1 + MAINTAINERS | 2 ++ config/riscv/meson.build | 27 +++++++++++++++++ lib/lpm/meson.build | 1 + lib/lpm/rte_lpm.h | 2 ++ lib/lpm/rte_lpm_rvv.h | 62 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 95 insertions(+) create mode 100644 lib/lpm/rte_lpm_rvv.h -- 2.49.0