From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0064.outbound.protection.outlook.com [104.47.42.64]) by dpdk.org (Postfix) with ESMTP id 28E282C6B for ; Fri, 13 Jan 2017 19:59:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=PhPETPhgqqlkTyWLvwhcujhwwqgnKPiaE3CAEe4Yhhc=; b=m5PFMOxGhoRn/hLbn1ulxberijAO+/zZXOJwxdK0IXQBjxleiCFKVIlxYnaet4DNRv+i/pvRqzg+yYRBBeWIETUxvelV0qtAiQzhpoJh0Nlub3v0sVqgbaq6fjJQt2lxdNlyxFmuaTpwS82T42XS0LfSqIqPBLkPPKrSZIGJIis= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Zbigniew.Bodek@cavium.com; Received: from [10.0.0.33] (31.172.191.173) by BY2PR07MB551.namprd07.prod.outlook.com (10.141.217.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.829.7; Fri, 13 Jan 2017 18:59:37 +0000 To: Hemant Agrawal , References: <1481077985-4224-2-git-send-email-zbigniew.bodek@caviumnetworks.com> <1483551207-18236-1-git-send-email-zbigniew.bodek@caviumnetworks.com> CC: , , From: Zbigniew Bodek Message-ID: <82638aad-780d-1909-6f3f-f46d0fcb9f0f@caviumnetworks.com> Date: Fri, 13 Jan 2017 19:59:26 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [31.172.191.173] X-ClientProxiedBy: DB5PR03CA0038.eurprd03.prod.outlook.com (10.162.150.48) To BY2PR07MB551.namprd07.prod.outlook.com (10.141.217.150) X-MS-Office365-Filtering-Correlation-Id: 408a0050-bf56-436b-499d-08d43be6533d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BY2PR07MB551; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB551; 3:mnxiczi5u06uV2QeMH9knfZK20bakpFTan42oq85AgPVd8nAUys+c7yYn+zchlSAut9EpI4FyIn92p1fRT3bi+dELLTBtC3y0d/b0h/W+dTT3AblKl/QgRYHGLWvNxfzB2pyIsPz73t9Xa/ArsR5Jb885Xdhs8fwn2pFANDmZfZkyKnqxjxqaUW60XzWZW36Z9dE+bReqNDmghPykJMZVFD+niBMWxG1qMaRibnkrAJsIgLfPKPMI2HU4PawrV9yQ3ftGCY8dH//xJzRCVVG5w==; 25:oLeS3ihsehlmxVXG193MxJ5rSzDFVdCahu3Gt2L/zrhApgRc66NcxufEh82twleKBv1SDLrcRuWZAvucG7Rr9RzPxtkUNLqHQmQGJ9NGYQWhRhc01pwoUtEl15JN1u8jHwRi+iQZaWZ0bCP8bCtqVeuNRf+KZsAKR3p2L2gU86C3yUmHAa4vHbmFOABUzo+9Hbb6mi1kAhernaeFcHGEq2gfq1A4TYPdBOic/tSwgwZUDdV1uP+ujQTWmXMRPvS2beE6JV0Kwls8UY3+KSJ7IbJtQCApSWy/0f6xPbYLB1BgqZwXBPJUCNcagRLGJqxLd5VFL31I7+3BEEmZjUUaCqDisZDnN2x4lkaaPGYmNclksfY5FjViMxfyewS2bT67gG1DGNj4wCYhoxAYcnpIzqPbp0+1u1R6Tkvu1bJwqN6cBfSFV2AL78A+lZew/HjOMv2AW6HrcVBGK/L0sAEdpg== X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB551; 31:hk6O5u/w+uwQNPCulxu6Z+0qG3qeBrxkYYUm3VGte6mB/RyP+Jq2HgBdurXAXdhFN4wlvgSAsCnQzX8FLEP6D9Qqu2+y2H24hNdrjlQ0/5/YeFZ8mplZSBJCP6PcQauY6+2fxGXuZFZa2voKM+Pgexm612FDhWTR9Mnd2MeRu7zox7zpm+gMX+WDS6SKd/BhClRkI9nRHx/obF5hMxnR63nEWO5+AZbnaDQ5pGvhxgygMqTW86A8vPEVF1xDcsdW; 20:/ELfpcLkdLxgEpqctKWuLqqzphP+vfXVyVM/NwRoSrEwdjNWlVumEgP0M2AEIQ52qM8o2YvMSTbKO17pKi/Bv1cbRGkuhidTRQbDGbL/DPihFo/BCVIQsvnbhtfONhwVH38qTj+H4AljQihAMrhWsPKi3l84U3qNa+YpYc7yWifn9wMmIzzC9MXsMXMRzAmJWbxvus7JeBLxAn0kpMQ7fV0YqQzNZL5P+TyNBc/s7ISK7PR7mLy+wG5uNJDIuL5AEwiiL6uEsEMnWtsE3Mm78fOO8llmxZ6NHrxzDLBtCRK5UKpkw6TfBsZ+58dPfqk5HQ8P99HlxFZMNSKneJ+A6GNYxRntJXK+ljrejs9h7KXn2UNeS7NLAqrwYcad7FmRATrw1bSWhSU0aSo5eoPKeJGCkGGjmBKITlWxkbqraIRlf4948qzJUJNkOgdYpod4ZlDSdFG3G9p9JQoide4al4XbVdcp7wwjbSAC0CqfWJdK+VjfmZsminEvmoTP8VRQr3ipLxEDoPynaPE4CAUsRPEbvlnS1n6Mt2s87T3mmxT2s8TDV75OW/pO6XTsdunOunNqZr8qculae7TKITbhT6VlPaz4pLZ5kNPR3CVgOUQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(6072148)(6042181); SRVR:BY2PR07MB551; BCL:0; PCL:0; RULEID:; SRVR:BY2PR07MB551; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB551; 4:9uVMPob83chujwxhaoUTZC/vUA4G55NA3wf9wJ4vQn05PI3cHb05UgdXPOwZz+vHbhj2cYyRU/0D61OMGL/2+aAyZghsda5/luW+EltxJ0swzuyraEofGouiZh576ADpJjXoV9OTInueanwY66SlntU4iRlr5oNrRGFyiiy6XeqQeDNEBzzmTsYKxYN7qH9q+sqkfuh0VagaQeu0Is2VKq79DOVYK5lnoPGqelO5dl1Woyr3swd7HGBDRbeT4HxBqgjUkXi+SPFIuX1ptel6dY6KkfGt/ZH7V7TBRaZVb9NJRSsvOc5t8U2IwlrvhaYx+2RxQheDgUWzhHZDgT124FkU/tf8K7f+1yUb0zXyWbHQbqJS8XefNpd+6wj1emgilhxQeimrOfGR+0I/m7wiPtGsL1ahRcavTLOZP26WBoJ/Xkg0lAMPbWTL3sQDmYd+UZ905/X0XRA70PTxXdYN95lfSy1R0VJx+TPAjGkCOw4CDSpKUFQO+snklSSbWWUuEBwJ5L8b/ZfFyAQD7ZkutEIGFp63q6zYFF57fAd5N4pjnylFoDHaQbgzW4aHWLL40jvSAefjCiCJisdI7Jqwgv48n5XaoEXRUXjgntePXSn3g8J0pF1h3Mw4fGZoRMWkdeXr+ZO+jBgNUHJ54YSDzw== X-Forefront-PRVS: 018632C080 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(199003)(377454003)(189002)(24454002)(5660300001)(92566002)(7736002)(6306002)(6116002)(31686004)(2906002)(345774005)(81166006)(50466002)(64126003)(305945005)(42882006)(83506001)(2950100002)(97736004)(65956001)(23001)(22001)(12001)(14001)(13001)(15001)(25001)(26001)(16001)(24001)(189998001)(107886002)(65806001)(47776003)(65826007)(5001770100001)(4001350100001)(66066001)(27001)(229853002)(76176999)(25786008)(38730400001)(23746002)(33646002)(101416001)(50986999)(8676002)(6666003)(230700001)(105586002)(77096006)(68736007)(6486002)(106356001)(90366009)(8656002)(81156014)(54906002)(4001430100002)(42186005)(54356999)(4326007)(36756003)(3846002)(31696002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR07MB551; H:[10.0.0.33]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; BY2PR07MB551; 23:QTFLPY+pPm3YPp+8tJKxgRcTqbSlHGeqSrFfu4?= =?Windows-1252?Q?NxR0fepaXOkWbJMH62UANUuhuKKE7l9QzDY8erMrEOqZn9zkeVfYdvz4?= =?Windows-1252?Q?g1Jh+FGDpotOT1OBYigrEFSPVgvhZXjUG7xHNrxK9zKTw1r0MST7EOwc?= =?Windows-1252?Q?7YwMVNltvZdMJU1igS1GOObUbNrQYG3Oia6PJfZfNMEJif2jD0GhFh9f?= =?Windows-1252?Q?8ZmBEYoTlBAxFj/57BZAvXYgmhPSOiSZrevvon1FK0VTn5W9O+Hsubff?= =?Windows-1252?Q?fB8D0L9NETxAn25qfBoKRGB7PhYVL+C68ahrIL7SKB6szoNdi30okEYW?= =?Windows-1252?Q?eRHMVy+/wtjXILyz6cOLqg11gZlkBv4uXRtCFA3BRl9Ss4ne8PTLdCbn?= =?Windows-1252?Q?hcGle+DVw6tsYRF5lSlZ3tH2iiGdGTxwrU9cCi04tX8DRKMu08sV0gzf?= =?Windows-1252?Q?Hti06sdzji/CoKZPk3jZ8h/cDLHnw/mcvOBApELJHSx9alnvAk+fcIm7?= =?Windows-1252?Q?zEfmPvb/dhFWXVqAQtYtbwI2JJ7vFUsa+r7jn0n1nT9uxFOMyBnXO+CH?= =?Windows-1252?Q?OGJ0FLkwWN70UuMT20DdX2RR2kS7Y6fdZRv6DbziEULaMi4RbK6oHijt?= =?Windows-1252?Q?Cyp0oVVzvM1CcgGSzMAp2tOHKd8mVgA2SRdUD6vnl/J9FZLIuETOCcuq?= =?Windows-1252?Q?srgM1RgHiHvA8Vj+0e5CIlfSzKMhYusPib3hrf0i8LReBFwqeJVaRG3E?= =?Windows-1252?Q?JUFmoUuM0lc1ditljqvyyeau+gAZdeBLNqb3QN1UdpHzzjGCy+OW8Foy?= =?Windows-1252?Q?wEoxaMd3knAKXGUacELFtq8IDUIMUJmmpFGoDBZ6Fne0CpI+SNbS0wwb?= =?Windows-1252?Q?9rWt8gM/wbPERL0f103zQAntCzdj7577wKJq6aM1R6ILVPxmQxSjA2BR?= =?Windows-1252?Q?4009GGC8UmPAyFDQLIC6lHZ50LP3+H5gwDlyqL1j8m7EytgSNP+W/OJm?= =?Windows-1252?Q?MGUU/XK4NZLm6rFR6uOSr76ncXR/RgFZfXiwViafzm2/Np40t100hCm+?= =?Windows-1252?Q?YLst5sBSAkZwqzFRQkZIbT0ROMQhGTTDv9ahxtNPyPVTkEef2QNZJN1C?= =?Windows-1252?Q?4KpH9fC2ZWYaSP9jezU0VjZH9qhhQ0Qcfw9zmSMR5ApnS7YaJ6owdFEs?= =?Windows-1252?Q?Kghom/ddcMZigJUXYmwcYrMAXpxCT+GxUe0H6heIO+YBzrz5e7an0/DD?= =?Windows-1252?Q?QW+hGBilg98snHQGzXbLGV8vTcFm85Ld3jwkpB48PV8x+78E+NbrJEfd?= =?Windows-1252?Q?1jtuGxRZy6U8dSu8zpi4kT5zKAkpQsgsGoryT6fdDGbZ/oXaPbuge2kR?= =?Windows-1252?Q?660/s/NQ1Xp6rYrep/zoiHFGb5/gzG5svFTmLE4XoZ1H+UwnQuyxGddT?= =?Windows-1252?Q?I/xqakO0q6x6bqHyUzpXB2+iRjc4fqrC1cro0JiQ6UhNP4tXB+Ohw8p9?= =?Windows-1252?Q?kL60ozq/o4dY2cAWDhJouotQ4p9DeCXY5OeexswO2Dj1Ko5+dNrOegnQ?= =?Windows-1252?Q?wxsHkdxgCCkEnfdocHrytVFffG52rq6tY6q82lTyKMht60lZOAWgsiJU?= =?Windows-1252?Q?To/qTC17JQ4IbQNJgexQco1tdFbzNyhF5bjfj3taaymCWYfcD4A+E9y+?= =?Windows-1252?Q?G2TD0VjiVDLqJryNcCASPsELAWWIoWvjrC2HeB2V18kjFzoq5f?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB551; 6:1pldfHlQB43359VKPAyRZm+LUv1vSSsLg3l//eNmAYDQZVtxGgdR0N7CbyQSGRV1KFNyK4TB0h2HBPw/uKpPqRnyFfE5lz9qCpKJBq+Z4qc7n3E94tiVTS3P5pDvFPTB038BhDez5IIIIVgBGeu8soIALN8W2Lbo+JpX7qOW7APgU8zyZcuVD2Re4W0uA/gNi9syB4eKQ6Jxms5rzcX6H6kl7H0VC099FXCf9YQpZisD0h9Uv9CpwRRyfie9UFAj08wKxSoj8+v30uR62bZJwaGFtNARVBBZTVqhKa44xWLJoPZO0yKBUkk/HcZXvEOvbUPCYG+JrLHLTB7OoojFwmtjgq/8Oa7exbJNqgrgu+CXyUn8kCMbdUuPHiDuK1wsFbPLYLNorBMREdeQh38hBxEZmJI9d6dO9VpXhh6/9DU=; 5:iCl92XGxMcQ34T0rh0VqEqBIFNPzQ8nF/MsO88l7mMrbng88awDv/sieUwGzSUPgPNxxgLoIvCA2yn6iZaamafTQcRTQ1xvxUtmPUe6iuHTLAR7mo9Bo9i62erJ630MIrT7sxx8iqJ4Tx7jq7qb4ysW1Mb7JhiFJropoSruq5wo=; 24:tN5Go0gnIjvJK6V4QxQmnnQMKLN/R6gasr1ExjXSAVlbco7ZuOkplFFEQ5VOx63OHkhBTdq/DWhhv+Mmlve/K6nxP2LQaZPQEUPxUJdEMho= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB551; 7:R8Qxj31nZ1gzehAgIfNfun4si6RzkxK/SuCKdRAOyKnRrTcFDVgMaUusDCK4TbJquHb3eVL2OzUrtCeJXqJF7hXJn46Ucvm+XDbQGTb2EqAz+3yhDuS1mQ1lTL1PVT3SF5a0mBOa0PbJGDsGHWRvgWZPuic/ivW4i8wNV1rr1Cn4VFG1mtTRbRC8+hllRSzJwBz2p2BuUo5s+qENubxwk9vbKotU+3P5CctDSJwIX8lzLpZC5p4vBBN9HX2lFV8LiAXhfKbs9m+0ry7o21qdY5utO69koGNLo1atmUezTF0vcYeHUD1/ZTlYbIBCb710CmxPLQ9PYb2skdeZgcQrbzE7J4L7FNgF9QDK+/T6e7+mh8Bc46EloO2ULGrdjNlcoaObruZWiCuZ66A33tsesdqa2ikfh3nocnGzRVMsFVJM3R6Gu903PxSsvFTwxb86cdL1g18aAZMj2s/lkMWBdQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2017 18:59:37.7516 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR07MB551 Subject: Re: [dpdk-dev] [PATCH v3 0/8] Add crypto PMD optimized for ARMv8 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jan 2017 18:59:42 -0000 Hello Hemant, Thank you for your remarks and comments. Please check my answer below. Kind regards Zbigniew On 13.01.2017 09:07, Hemant Agrawal wrote: > On 1/4/2017 11:03 PM, 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. > > 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. > 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 >> >> 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. >> >> --- >> v3: >> * Addressed review remarks >> * Moved low-level assembly code to the external library >> * Removed SHA256 MAC cases >> * Various fixes: interface to the library, digest destination >> and source address interpreting, missing mbuf manipulations. >> >> v2: >> * Fixed checkpatch warnings >> * Divide patches into smaller logical parts >> >> Zbigniew Bodek (8): >> mk: fix build of assembly files for ARM64 >> lib: add cryptodev type for the upcoming ARMv8 PMD >> crypto/armv8: add PMD optimized for ARMv8 processors >> mk/crypto/armv8: add PMD to the build system >> doc/armv8: update documentation about crypto PMD >> crypto/armv8: enable ARMv8 PMD in the configuration >> crypto/armv8: update MAINTAINERS entry for ARMv8 crypto >> app/test: add ARMv8 crypto tests and test vectors >> >> MAINTAINERS | 6 + >> app/test/test_cryptodev.c | 63 ++ >> app/test/test_cryptodev_aes_test_vectors.h | 144 +++- >> app/test/test_cryptodev_blockcipher.c | 4 + >> app/test/test_cryptodev_blockcipher.h | 1 + >> app/test/test_cryptodev_perf.c | 480 +++++++++++++ >> config/common_base | 6 + >> doc/guides/cryptodevs/armv8.rst | 96 +++ >> doc/guides/cryptodevs/index.rst | 1 + >> doc/guides/rel_notes/release_17_02.rst | 5 + >> drivers/crypto/Makefile | 1 + >> drivers/crypto/armv8/Makefile | 73 ++ >> drivers/crypto/armv8/rte_armv8_pmd.c | 926 >> +++++++++++++++++++++++++ >> drivers/crypto/armv8/rte_armv8_pmd_ops.c | 369 ++++++++++ >> drivers/crypto/armv8/rte_armv8_pmd_private.h | 211 ++++++ >> drivers/crypto/armv8/rte_armv8_pmd_version.map | 3 + >> lib/librte_cryptodev/rte_cryptodev.h | 3 + >> mk/arch/arm64/rte.vars.mk | 1 - >> mk/rte.app.mk | 2 + >> mk/toolchain/gcc/rte.vars.mk | 6 +- >> 20 files changed, 2390 insertions(+), 11 deletions(-) >> create mode 100644 doc/guides/cryptodevs/armv8.rst >> create mode 100644 drivers/crypto/armv8/Makefile >> create mode 100644 drivers/crypto/armv8/rte_armv8_pmd.c >> create mode 100644 drivers/crypto/armv8/rte_armv8_pmd_ops.c >> create mode 100644 drivers/crypto/armv8/rte_armv8_pmd_private.h >> create mode 100644 drivers/crypto/armv8/rte_armv8_pmd_version.map >> > >