> Von: Hristo Venev [hristo@xxxxxxxxxx] > Gesendet: Samstag, 23. Februar 2019 22:21 > An: Jens Axboe > Cc: NeilBrown; Markus Stockhausen; linux-raid@xxxxxxxxxxxxxxx > Betreff: [PATCH] lib/raid6: possibly use different gen and xor algorithms., > > The performance measurement of xor() was introduced in fe5cbc6e06c7d8b3, but > its result was unused. Given that all implementations should give the same > output, it makes sense to use the best function for each operation. Hi Hristo, I just want to remind that the xor function speed test might be a bit tricky. While the generation always must calulate the full stripe, the xor pages vary from request to request. You can play around with the start/stop values to get a better idea if the xor function will be comparable for different test setups. E.g int start = 0, stop = (disks>>1)-1; Best regards. Markus > For example, on my machine more unrolling can benefit gen but not xor: > > raid6: sse2x1 gen() 9560 MB/s > raid6: sse2x1 xor() 7021 MB/s > raid6: sse2x2 gen() 11741 MB/s > raid6: sse2x2 xor() 8111 MB/s > raid6: sse2x4 gen() 13801 MB/s > raid6: sse2x4 xor() 8002 MB/s > raid6: avx2x1 gen() 19298 MB/s > raid6: avx2x1 xor() 13780 MB/s > raid6: avx2x2 gen() 23303 MB/s > raid6: avx2x2 xor() 15258 MB/s > raid6: avx2x4 gen() 27255 MB/s > raid6: avx2x4 xor() 14617 MB/s > raid6: using algorithm avx2x4 gen() 27255 MB/s > raid6: and algorithm avx2x2 xor() 15258 MB/s, rmw enabled > > Signed-off-by: Hristo Venev <hristo@xxxxxxxxxx> > ...