Re: [PATCH v4 1/1] riscv: __asm_copy_to-from_user: Optimize unaligned memory access and pipeline stall

From: Guenter Roeck
Date: Mon Jul 19 2021 - 09:53:44 EST


Hi,

On 7/19/21 5:53 AM, Akira Tsukamoto wrote:

This patch will reduce cpu usage dramatically in kernel space especially
for application which use sys-call with large buffer size, such as
network applications. The main reason behind this is that every
unaligned memory access will raise exceptions and switch between s-mode
and m-mode causing large overhead.


I had to revert the original patch from the mainline kernel prior to applying
this patch. Obviously that means that there may be other changes affecting the
outcome.

riscv64 images work, but riscv32 images still fail with this patch applied.
The error is a bit different than before, though.

...
[ 11.899979] Run /sbin/init as init process
[ 12.152666] random: fast init done
moun: applet not found
"�����V�t: applet not found
/bi�����V�F-: applet not found
moun: applet not found
swaon: applet not found
hostname-F: applet not found

After this, the image hangs.

For comparison, the mainline kernel (v5.14-rc2) fails as follows.

[ 10.788105] Run /sbin/init as init process
Starting syslogd: OK
Starting klogd: OK
/etc/init.d/S02sysctl: line 68: syntax error: EOF in backquote substitution
/etc/init.d/S20urandom: line 1: syntax error: unterminated quoted string
Starting network: /bin/sh: syntax error: unterminated quoted string
sed: unmatched '/'
/bin/sh: syntax error: unterminated quoted string
FAIL
/etc/init.d/S55runtest: line 48: syntax error: EOF in backquote substitution

I'll be happy to provide information on how to reproduce the problem
if needed. Please let me know.

Thanks,
Guenter