linux/arch/riscv/lib
Andy Chiu b94cec5761 riscv: skip software algning code for HAVE_EFFICIENT_UNALIGNED_ACCESS
We can jump straight into the copy loop if the kernel is compiled for a
hardware that natively supports misaligned access. The user copy
bandwidth improvement on K3 and Ascaolon is shown as below:

Misaligned user copy, size: 512B (offset: [0:15] except 0, 8)
BW Improvement	| Write	| Read	|
K3		| 6.19%	| 3.43%	|
Ascalon		| 10.0%	| 11.4%	|

Aligned user copy, size: 512B (offset: 0, 8)
BW Improvement	| Write	| Read	|
K3		| 1.69%	| 0.90%	|
Ascalon		| 1.25%	| 3.32%	|

Suggested-by: Anton Blanchard <antonb@tenstorrent.com>
Signed-off-by: Andy Chiu <tchiu@tenstorrent.com>
Link: https://patch.msgid.link/20260901192334.3543340-1-tchiu@tenstorrent.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-09-02 11:47:08 -06:00
..
ashldi3.S riscv: add platform-specific double word shifts for riscv32 2026-05-28 21:24:51 -07:00
ashrdi3.S riscv: add platform-specific double word shifts for riscv32 2026-05-28 21:24:51 -07:00
clear_page.S use linux/export.h rather than asm-generic/export.h 2024-01-09 20:10:40 -08:00
csum.c riscv: fix various typos in comments and code 2026-04-04 18:42:39 -06:00
delay.c calibrate: Rework delay timer calibration 2026-07-15 15:04:55 +02:00
error-inject.c riscv: Add support for function error injection 2021-01-14 15:09:09 -08:00
lshrdi3.S riscv: add platform-specific double word shifts for riscv32 2026-05-28 21:24:51 -07:00
Makefile riscv: add platform-specific double word shifts for riscv32 2026-05-28 21:24:51 -07:00
memcpy.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
memmove.S riscv: fix various typos in comments and code 2026-04-04 18:42:39 -06:00
memset.S RISC-V: lib: Add pi aliases for string functions 2024-08-05 12:06:39 -07:00
riscv_v_helpers.c riscv: make unsafe user copy routines use existing assembly routines 2025-06-05 11:39:15 -07:00
strchr.S riscv: lib: add strchr() implementation 2026-04-04 18:42:44 -06:00
strcmp.S RISC-V: separate Zbb optimisations requiring and not requiring toolchain support 2025-03-18 08:53:02 +00:00
strlen.S riscv: lib: optimize strlen loop efficiency 2026-02-09 15:27:33 -07:00
strncmp.S RISC-V: separate Zbb optimisations requiring and not requiring toolchain support 2025-03-18 08:53:02 +00:00
strnlen.S riscv: lib: Fix ZBB strnlen reading past count boundary 2026-08-08 11:45:33 -06:00
strrchr.S riscv: lib: add strrchr() implementation 2026-04-04 18:42:44 -06:00
tishift.S use linux/export.h rather than asm-generic/export.h 2024-01-09 20:10:40 -08:00
uaccess_vector.S riscv: make unsafe user copy routines use existing assembly routines 2025-06-05 11:39:15 -07:00
uaccess.S riscv: skip software algning code for HAVE_EFFICIENT_UNALIGNED_ACCESS 2026-09-02 11:47:08 -06:00