On Mon, Jul 08, 2024 at 02:24:52PM +0200, Helge Deller wrote: > Commit c055e3eae0f1 ("crypto: xor - use ktime for template benchmarking") > switched from using jiffies to ktime-based performance benchmarking. > > This works nicely on machines which have a fine-grained ktime() > clocksource as e.g. x86 machines with TSC. > But other machines, e.g. my 4-way HP PARISC server, don't have such > fine-grained clocksources, which is why it seems that 800 xor loops > take zero seconds, which then shows up in the logs as: > > xor: measuring software checksum speed > 8regs : -1018167296 MB/sec > 8regs_prefetch : -1018167296 MB/sec > 32regs : -1018167296 MB/sec > 32regs_prefetch : -1018167296 MB/sec > > Fix this with some small modifications to the existing code to improve > the algorithm to always produce correct results without introducing > major delays for architectures with a fine-grained ktime() > clocksource: > a) Delay start of the timing until ktime() just advanced. On machines > with a fast ktime() this should be just one additional ktime() call. > b) Count the number of loops. Run at minimum 800 loops and finish > earliest when the ktime() counter has progressed. > > With that the throughput can now be calculated more accurately under all > conditions. > > Fixes: c055e3eae0f1 ("crypto: xor - use ktime for template benchmarking") > Signed-off-by: Helge Deller <deller@xxxxxx> > Tested-by: John David Anglin <dave.anglin@xxxxxxxx> > > v2: > - clean up coding style (noticed & suggested by Herbert Xu) > - rephrased & fixed typo in commit message Patch applied. Thanks. -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt