AW: [PATCH 1/2] md/raid6: use faster multiplication for ARM NEON delta syndrome

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Von: Ard Biesheuvel [ard.biesheuvel@xxxxxxxxxx]
> Gesendet: Donnerstag, 13. Juli 2017 19:16
> An: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-raid@xxxxxxxxxxxxxxx
> Cc: shli@xxxxxxxxxx; Markus Stockhausen; linux@xxxxxxxxxxxxxxx; will.deacon@xxxxxxx; catalin.marinas@xxxxxxx; Ard Biesheuvel
> Betreff: [PATCH 1/2] md/raid6: use faster multiplication for ARM NEON delta syndrome
> 
> The P/Q left side optimization in the delta syndrome simply involves
> repeatedly multiplying a value by polynomial 'x' in GF(2^8). Given
> that 'x * x * x * x' equals 'x^4' even in the polynomial world, we
> can accelerate this substantially by performing up to 4 such operations
> at once, using the NEON instructions for polynomial multiplication.
> 
> Results on a Cortex-A57 running in 64-bit mode:
> 
>   Before:
>   -------
>   raid6: neonx1   xor()  1680 MB/s
>   raid6: neonx2   xor()  2286 MB/s
>   raid6: neonx4   xor()  3162 MB/s
>   raid6: neonx8   xor()  3389 MB/s
> 
>   After:
>   ------
>   raid6: neonx1   xor()  2281 MB/s
>   raid6: neonx2   xor()  3362 MB/s
>   raid6: neonx4   xor()  3787 MB/s
>   raid6: neonx8   xor()  4239 MB/s

Nice optimiziation. Nevertheless the test algorithm favours this implementation. See:

int start = (disks>>1)-1, stop = disks-3; /* work on the second half of the disks */

What gives the before/after test if you work on the middle data disks and not on 
the right ones? In the 4K page size this should be  start = 3, stop = 11 instead of
start = 7, stop = 13. Given the large gain you see the impact should be lower but 
at least in the >10% range. 

Markus
 
> While we're at it, simplify MASK() by using a signed shift rather than
> a vector compare involving a temp register.
> 
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> ...
****************************************************************************
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser Mail ist nicht gestattet.

�ber das Internet versandte E-Mails können unter fremden Namen erstellt oder
manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine
rechtsverbindliche Willenserklärung.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

Vorstand:
Kadir Akin
Dr. Michael Höhnerbach

Vorsitzender des Aufsichtsrates:
Hans Kristian Langva

Registergericht: Amtsgericht Köln
Registernummer: HRB 52 497

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.

e-mails sent over the internet may have been written under a wrong name or
been manipulated. That is why this message sent as an e-mail is not a
legally binding declaration of intention.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

executive board:
Kadir Akin
Dr. Michael Höhnerbach

President of the supervisory board:
Hans Kristian Langva

Registry office: district court Cologne
Register number: HRB 52 497

****************************************************************************

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux