|
|
Log in / Subscribe / Register

riscv: lib: add optimized memchr() and extend KUnit tests

From:  Milan Tripkovic <milant2002-AT-gmail.com>
To:  Paul Walmsley <pjw-AT-kernel.org>, Palmer Dabbelt <palmer-AT-dabbelt.com>, Albert Ou <aou-AT-eecs.berkeley.edu>, Kees Cook <kees-AT-kernel.org>
Subject:  [PATCH 0/2] riscv: lib: add optimized memchr() and extend KUnit tests
Date:  Wed, 20 May 2026 17:55:29 +0200
Message-ID:  <20260520155532.1139471-1-milant2002@gmail.com>
Cc:  Alexandre Ghiti <alex-AT-ghiti.fr>, Andy Shevchenko <andy-AT-kernel.org>, linux-riscv-AT-lists.infradead.org, linux-kernel-AT-vger.kernel.org, linux-hardening-AT-vger.kernel.org, Dusan Stojkovic <Dusan.Stojkovic-AT-rt-rk.com>, Milan Tripkovic <Milan.Tripkovic-AT-rt-rk.com>
Archive-link:  Article

From: Milan Tripkovic <Milan.Tripkovic@rt-rk.com>

Add an optimized assembly implementation of memchr() for RISC-V.
The implementation uses word-aligned loads and Zbb optimizations where
available, with a fallback for non-Zbb hardware.

The series also includes KUnit tests for functional verification 
and performance benchmarking.

Signed-off-by: Milan Tripkovic <Milan.Tripkovic@rt-rk.com>

Milan Tripkovic (2):
  riscv: lib: add memchr() implementation
  lib/string_kunit: extend benchmarks and unit test to memchr()

 arch/riscv/include/asm/string.h |   3 +-
 arch/riscv/lib/Makefile         |   1 +
 arch/riscv/lib/memchr.S         | 126 ++++++++++++++++++++++++++++++++
 arch/riscv/purgatory/Makefile   |   5 +-
 lib/tests/string_kunit.c        |  53 ++++++++++++++
 5 files changed, 186 insertions(+), 2 deletions(-)
 create mode 100644 arch/riscv/lib/memchr.S

-- 
2.43.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds