From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH v5 0/7] Add crypto PMD optimized for ARMv8 Date: Wed, 18 Jan 2017 20:53:39 +0530 Message-ID: <20170118152337.GA10376@localhost.localdomain> References: <1484668143-32522-3-git-send-email-zbigniew.bodek@caviumnetworks.com> <1484749650-24867-1-git-send-email-zbigniew.bodek@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Cc: , , , , To: Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0080.outbound.protection.outlook.com [104.47.34.80]) by dpdk.org (Postfix) with ESMTP id 11E22FA87 for ; Wed, 18 Jan 2017 16:24:05 +0100 (CET) Content-Disposition: inline In-Reply-To: <1484749650-24867-1-git-send-email-zbigniew.bodek@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Wed, Jan 18, 2017 at 03:27:23PM +0100, zbigniew.bodek@caviumnetworks.com wrote: > From: Zbigniew Bodek > > 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. > 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 > > CPU compatibility with this virtual device > is detected in run-time and virtual crypto > device will not be created if CPU doesn't > provide AES, SHA1, SHA2 and NEON. > > The functionality and performance of this > code can be tested using generic test application > with the following commands: > * cryptodev_sw_armv8_autotest > * cryptodev_sw_armv8_perftest > New test vectors and cases have been added > to the general pool. In particular SHA1 and > SHA256 HMAC for short cases were introduced. > This is because low-level ARM assembly code > is using different code paths for long and > short data sets, so in order to test the > mentioned driver correctly, two different > data sets need to be provided. > > --- > > v5: > * Add user defined name initializing parameter > (according to b8a661f15eb8) > * Align with the current next-crypto master branch > * Another changes to commit logs Tested-by: Jerin Jacob dpdk-crypto-next: changeset: 0f0099d86e9b0b0865837b70a09018b0e4bd8411 https://github.com/caviumnetworks/armv8_crypto.git changeset: 71258fb9fe100d411a53a247040e675fbae45e63