From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f50.google.com (mail-wm0-f50.google.com [74.125.82.50]) by dpdk.org (Postfix) with ESMTP id D4A792C8 for ; Wed, 7 Dec 2016 16:00:09 +0100 (CET) Received: by mail-wm0-f50.google.com with SMTP id u144so35578102wmu.1 for ; Wed, 07 Dec 2016 07:00:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:user-agent:in-reply-to :references:mime-version:content-transfer-encoding; bh=cgA63HVdyoh/KfhXm8G2Cg8dorIQIT3eevJAdWG3gHA=; b=q+mX0xGEahErjdVAwk9j8oZGPAkk+6My/Pr90UC1sC1F/fbUJPfLRTAq+uvh+7ik7p zqCxks1Op/5ZY2cn8yp/KV5FIIvVledkldReOAkAr/qJQoVtje7oISCz7j6beTdODf/g 0F084orgtw4DMcIX4wj6iDIK6uVnJ6qGaMqn0414aytLtMzKVhe35u3f/0VXYR+HLETo dxXk5O31W02T42SubzzlEDEGm9xJA+l/qDBMiiayvDMwDYGPjkLEN3LRhTsNHQeB5xAU +/aOM7xw1utiqgCVtP/MTGr+woJP2TGQKmdOKQ2COf/eWUJekCH+UuWCGQXw7EUUJBBZ klTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :in-reply-to:references:mime-version:content-transfer-encoding; bh=cgA63HVdyoh/KfhXm8G2Cg8dorIQIT3eevJAdWG3gHA=; b=JiCArJTJSTvygxFW7YHt40Vo2bpMyg8udCHe38tByay3MFm3ZGGZ+7tj3mMg1RMuZh GWyb+muyvvvo7hVWzz0SGuFNUP9JGVHnEq3ylloOlNsjI9gb07wRhyGymAoS8EZmjm0N wpZyN0weePIE1aIwHU8k49br55Mn1eu3NAGE4KFU62G80avCckkU+DZjMijIGrhlPh+w JKPbECcJh5z8hmMuL0I26Hx7of4HGSfpfm8FeKQJl1KNa4NhrvDTgxSTcMzuA3TLQWtp GpkO7g36fmtGsQRJcTLQAqih5QJxlmktHIi3qmpDkUuOtjxU7mBMU/hD+uROhAz1eLND s3mw== X-Gm-Message-State: AKaTC03F1Wk7Jj3yk38GORicnynjY0XjUnYLLQYbHW0X8mWhn7cEPdiCRRk2D4wMAVnzcDcO X-Received: by 10.28.126.11 with SMTP id z11mr3238160wmc.87.1481122809463; Wed, 07 Dec 2016 07:00:09 -0800 (PST) Received: from xps13.localnet (184.203.134.77.rev.sfr.net. [77.134.203.184]) by smtp.gmail.com with ESMTPSA id w79sm10098908wmw.0.2016.12.07.07.00.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Dec 2016 07:00:08 -0800 (PST) From: Thomas Monjalon To: Jerin Jacob Cc: zbigniew.bodek@caviumnetworks.com, dev@dpdk.org, pablo.de.lara.guarch@intel.com, Emery Davis Date: Wed, 07 Dec 2016 16:00:07 +0100 Message-ID: <2244872.kAKz40o8xq@xps13> User-Agent: KMail/4.14.10 (Linux/4.5.4-1-ARCH; KDE/4.14.11; x86_64; ; ) In-Reply-To: <20161206232437.GA26779@localhost.localdomain> References: <1480851219-45071-1-git-send-email-zbigniew.bodek@caviumnetworks.com> <3445082.xGUuZ4ynkZ@xps13> <20161206232437.GA26779@localhost.localdomain> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v2 03/12] crypto/armv8: Add core crypto operations 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: Wed, 07 Dec 2016 15:00:10 -0000 2016-12-07 04:54, Jerin Jacob: > On Tue, Dec 06, 2016 at 02:41:01PM -0800, Thomas Monjalon wrote: > > 2016-12-07 03:35, Jerin Jacob: > > > On Tue, Dec 06, 2016 at 10:42:51PM +0100, Thomas Monjalon wrote: > > > > 2016-12-07 02:48, Jerin Jacob: > > > > > On Tue, Dec 06, 2016 at 09:29:25PM +0100, Thomas Monjalon wrote: > > > > > > 2016-12-06 18:32, zbigniew.bodek@caviumnetworks.com: > > > > > > > From: Zbigniew Bodek > > > > > > > > > > > > > > This patch adds core low-level crypto operations > > > > > > > for ARMv8 processors. The assembly code is a base > > > > > > > for an optimized PMD and is currently excluded > > > > > > > from the build. > > > > > > > > > > > > It's a bit sad that you cannot achieve the same performance with > > > > > > C code and a good compiler. > > > > > > Have you tried it? How much is the difference? > > > > > > > > > > Like AES-NI on IA side(exposed as separate PMD in dpdk), > > > > > armv8 has special dedicated instructions for crypto operation using SIMD. > > > > > This patch is using the "dedicated" armv8 crypto instructions and SIMD > > > > > operation to achieve better performance. > > > > > > > > It does not justify to have all the code in asm. > > > > > > Why ? if we can have separate dpdk pmd for AES-NI on IA . Why not for ARM? > > > > Jerin, you or me is not understanding the other. > > It is perfectly fine to have a separate PMD. > > I am just talking about the language C vs ASM. > > Hmm. Both are bit connected topic :-) > > If you check the AES-NI PMD installation guide, We need to download the > "ASM" optimized AES-NI library and build with yasm. > We all uses fine grained ASM code such work. > So AES-NI case those are still ASM code but reside in some other > library. Yes > http://dpdk.org/doc/guides/cryptodevs/aesni_mb.html(Check Installation section) > https://downloadcenter.intel.com/download/22972 > > Even linux kernel use, hardcore ASM for crypto work. > https://github.com/torvalds/linux/blob/master/arch/arm/crypto/aes-ce-core.S Yes > > > > > We had compared with openssl implementation.Here is the performance > > > > > improvement for chained crypto operations case WRT openssl pmd > > > > > > > > > > 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 % > > > > > > > > OK but what is the performance difference between this asm code > > > > and a C equivalent? > > > > > > Do you you want compare against the scalar version of C code? its not > > > even worth to think about it. The vector version will use > > > dedicated armv8 instruction for crypto so its not portable anyway. > > > We would like to asm code so that we can have better control on what we do > > > and we cant rely compiler for that. > > > > No I'm talking about comparing a PMD written in C vs this one in ASM. > > Only fast stuff written in ASM. Remaining pmd is written in C. > Look "crypto/armv8: add PMD optimized for ARMv8 processors" > > > It"s just harder to read ASM. Most of DPDK code is in C. > > And only some small functions are written in ASM. > > The vector instructions use some C intrinsics. > > Do you mean that the instructions that you are using have no intrinsics > > equivalent? Nobody made it into GCC? > > There is intrinsic equivalent for crypto but that will work only on > armv8. If we start using the arch specific intrinsic then it better to > plain ASM code, it is clean and we all do similar scheme for core crypto > work(like AES-NI library, linux etc) > > We did a lot of effort to make clean armv8 ASM code _optimized_ for DPDK workload. > Just because someone doesn't familiar with armv8 Assembly its not fair to > say write it in C. I'm just saying it is sad, as it is sad for AES-NI or Linux code. Please read again my questions: Have you tried it? How much is the difference? I'm not saying it should not enter in DPDK, I'm just asking some basic questions to better understand the motivations and the status of ARM crypto in general. You did not answer for comparing with a C implementation, so I guess you have implemented it in ASM without even trying to do it in C. The conclusion: we will never know what is the real gain of coding this in ASM.