Messages in this thread | | | Subject | Re: [PATCH v2 0/5] riscv: improving uaccess with logs from network bench | From | Ben Dooks <> | Date | Tue, 22 Jun 2021 09:30:26 +0100 |
| |
On 19/06/2021 12:21, Akira Tsukamoto wrote: > Optimizing copy_to_user and copy_from_user. > > I rewrote the functions in v2, heavily influenced by Garry's memcpy > function [1]. > The functions must be written in assembler to handle page faults manually > inside the function. > > With the changes, improves in the percentage usage and some performance > of network speed in UDP packets. > Only patching copy_user. Using the original memcpy. > > All results are from the same base kernel, same rootfs and same > BeagleV beta board. > > Comparison by "perf top -Ue task-clock" while running iperf3.
I did a quick test on a SiFive Unmatched with IO to an NVME.
before: cached-reads=172.47MB/sec, buffered-reads=135.8MB/sec with-patch: cached-read=s177.54Mb/sec, buffered-reads=137.79MB/sec
That was just one test run, so there was a small improvement. I am sort of surprised we didn't get more of a win from this.
perf record on hdparm shows that it spends approx 15% cpu time in asm_copy_to_user. Does anyone have a benchmark for this which just looks at copy/to user? if not should we create one?
-- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html
| |