[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20260107023517.46840-1-jiangfeng@kylinos.cn>
Date: Wed, 7 Jan 2026 10:35:12 +0800
From: Feng Jiang <jiangfeng@...inos.cn>
To: pjw@...nel.org,
palmer@...belt.com,
aou@...s.berkeley.edu,
alex@...ti.fr,
kees@...nel.org,
andy@...nel.org,
jiangfeng@...inos.cn,
ebiggers@...nel.org,
martin.petersen@...cle.com,
Jason@...c4.com,
conor.dooley@...rochip.com,
samuel.holland@...ive.com,
charlie@...osinc.com,
ajones@...tanamicro.com,
nathan@...nel.org,
linus.walleij@...aro.org
Cc: linux-riscv@...ts.infradead.org,
linux-kernel@...r.kernel.org,
linux-hardening@...r.kernel.org
Subject: [PATCH 0/5] riscv: optimize string functions and add kunit tests
This series introduces optimized assembly implementations for several
string functions on the RISC-V architecture (strnlen, strchr, and strrchr).
To ensure correctness and prevent regressions, it also extends the
string_kunit test suite with new cases.
The patchset is organized as follows:
- Patches 1-2: Enhance lib/string_kunit.c with new test cases for
strlen and strnlen to establish a baseline for verification.
- Patches 3-5: Provide the RISC-V specific optimized implementations
for strnlen, strchr, and strrchr.
Testing:
All patches have been verified using the KUnit framework on QEMU
virt machine (riscv64). All string-related tests passed.
Changes:
- v1: Initial submission.
---
Feng Jiang (5):
lib/string_kunit: add test case for strlen
lib/string_kunit: add test case for strnlen
riscv: lib: add strnlen implementation
riscv: lib: add strchr implementation
riscv: lib: add strrchr implementation
arch/riscv/include/asm/string.h | 9 ++
arch/riscv/lib/Makefile | 3 +
arch/riscv/lib/strchr.S | 35 +++++++
arch/riscv/lib/strnlen.S | 164 ++++++++++++++++++++++++++++++++
arch/riscv/lib/strrchr.S | 37 +++++++
arch/riscv/purgatory/Makefile | 11 ++-
lib/tests/string_kunit.c | 53 +++++++++++
7 files changed, 311 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/lib/strchr.S
create mode 100644 arch/riscv/lib/strnlen.S
create mode 100644 arch/riscv/lib/strrchr.S
--
2.25.1
Powered by blists - more mailing lists