On Mon, Jan 16, 2017 at 06:57:12AM +0000, Hemant Agrawal wrote: > Hi Zbigniew, > > > > -----Original Message----- > > From: Zbigniew Bodek [mailto:zbigniew.bo...@caviumnetworks.com] > > Subject: Re: [PATCH v3 0/8] Add crypto PMD optimized for ARMv8 > > On 13.01.2017 09:07, Hemant Agrawal wrote: > > > On 1/4/2017 11:03 PM, zbigniew.bo...@caviumnetworks.com wrote: > > >> From: Zbigniew Bodek <zbigniew.bo...@caviumnetworks.com> > > >> > > >> Introduce crypto poll mode driver using ARMv8 cryptographic > > >> extensions. This PMD is optimized to provide performance boost for > > >> chained crypto operations processing, such as: > > >> * encryption + HMAC generation > > >> * decryption + HMAC validation. > > >> In particular, cipher only or hash only operations are not provided. > > > > > > Do you have a plan to add the crypto only, auth/hash only support into > > > this driver? > > > > OpenSSL driver is already implementing that and it is optimized for ARMv8. > > > [Hemant] Agreed that openSSL driver implement it, however it will make the > application little complex to initiates both driver instances and then choose > the driver based on the algorithm.
We started with chained crypto as primary data-plane use-case like IPSec need the chained operation. Agreed on single driver for both chained and non chained. Feel free to contribute. > > > > Also, do you plan to add additional cases w.r.t supported by other > > > crypto driver? > > > > We may do it in the future but this depends on our resource availability. > > > > > >> Performance gain can be observed in tests against OpenSSL PMD which > > >> also uses ARM crypto extensions for packets processing. > > >> > > >> Exemplary crypto performance tests comparison: > > >> > > >> cipher_hash. cipher algo: AES_CBC > > >> auth algo: SHA1_HMAC cipher key size=16. > > >> burst_size: 64 ops > > >> > > >> ARMv8 PMD improvement over OpenSSL PMD (Optimized for ARMv8 cipher > > >> only and hash only cases): > > >> > > >> Buffer > > >> Size(B) OPS(M) Throughput(Gbps) > > >> 64 729 % 742 % > > >> 128 577 % 592 % > > >> 256 483 % 476 % > > >> 512 336 % 351 % > > >> 768 300 % 286 % > > >> 1024 263 % 250 % > > >> 1280 225 % 229 % > > >> 1536 214 % 213 % > > >> 1792 186 % 203 % > > >> 2048 200 % 193 % > > >> > > >> The driver currently supports AES-128-CBC in combination with: SHA256 > > >> HMAC and SHA1 HMAC. > > >> The core crypto functionality of this driver is provided by the > > >> external armv8_crypto library that can be downloaded from the Cavium > > >> repository: > > >> https://github.com/caviumnetworks/armv8_crypto > > >> > [Hemant] Thanks for the good work. > Is it possible to get it hosted on a standard and neutral place? E.g. Linaro > It will make it easier for other ARM vendors to contribute. > Sure. We are OK to host any place you suggest. This was one of the reasons why I thought of having asm code in driver/crypto/armv8 itself. But maintainers had a different view on it.