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

Guenter Roeck linux at roeck-us.net
Mon Jul 19 07:24:44 PDT 2021


On 7/19/21 7:00 AM, Akira Tsukamoto wrote:
> 
> On 7/19/2021 10:51 PM, Guenter Roeck wrote:
>> 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.
> 
> Yes, I do would like to know the procedure of build instruction of your rv32 image.
> Then I would reproduce the error and look into how to fix it.
> 
Please have a look at http://server.roeck-us.net/qemu/riscv32/
and let me know if you need anything else.

Thanks,
Guenter



More information about the linux-riscv mailing list