From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Richardson, Bruce" Subject: Re: [PATCH v9 0/3] librte_net: add crc computation support Date: Wed, 5 Apr 2017 09:37:21 +0000 Message-ID: <59AF69C657FD0841A61C55336867B5B066751DB3@IRSMSX103.ger.corp.intel.com> References: <1490873422-13734-2-git-send-email-jasvinder.singh@intel.com> <1613321.D1UC30mH7n@xps13> <54CBAA185211B4429112C315DA58FF6D31B493E5@IRSMSX103.ger.corp.intel.com> <4843218.AadDjlxfvY@xps13> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" , "olivier.matz@6wind.com" , "Doherty, Declan" , "De Lara Guarch, Pablo" To: Thomas Monjalon , "Singh, Jasvinder" Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 3E3F229C7 for ; Wed, 5 Apr 2017 11:37:24 +0200 (CEST) In-Reply-To: <4843218.AadDjlxfvY@xps13> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon > Sent: Wednesday, April 5, 2017 10:01 AM > To: Singh, Jasvinder > Cc: dev@dpdk.org; olivier.matz@6wind.com; Doherty, Declan > ; De Lara Guarch, Pablo > > Subject: Re: [dpdk-dev] [PATCH v9 0/3] librte_net: add crc computation > support >=20 > 2017-04-05 08:34, Singh, Jasvinder: > > Hi Thomas, > > > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > > > 2017-03-30 17:15, Jasvinder Singh: > > > > In some applications, CRC (Cyclic Redundancy Check) needs to be > > > > computed or updated during packet processing operations. This > > > > patchset adds software implementation of some common standard CRCs > > > > (32-bit Ethernet CRC as per Ethernet/[ISO/IEC 8802-3] and 16-bit > > > > CCITT-CRC [ITU-T > > > X.25]). > > > > Two versions of each 32-bit and 16-bit CRC calculation are proposed= . > > > > > > > > The first version presents a fast and efficient CRC generation on > > > > IA processors by using the carry-less multiplication instruction > > > > PCLMULQDQ (i.e SSE4.2 instrinsics). In this implementation, a > > > > parallelized folding approach has been used to first reduce an > > > > arbitrary length buffer to a small fixed size length buffer (16 > > > > bytes) with the > > > help of precomputed constants. > > > > The resultant single 16-bytes chunk is further reduced by Barrett > > > > reduction method to generate final CRC value. For more details on > > > > the implementation, see reference [1]. > > > > > > > > The second version presents the fallback solution to support the > > > > CRC generation without needing any specific support from CPU (for > > > > examples- > > > > SSE4.2 intrinsics). It is based on generic Look-Up Table(LUT) > > > > algorithm that uses precomputed 256 element table as explained in > > > reference[2]. > > > > > > > > During intialisation, all the data structures required for CRC > > > > computation are initialised. Also, x86 specific crc implementation > > > > (if supported by the platform) or scalar version is enabled. > > > > > > As you can see in patchwork, it does not compile on FreeBSD: > > > http://dpdk.org/ml/archives/test-report/2017-April/016943.html > > > > As I stated in the cover letter notes as well that The patchset build > > fails on clang version earlier than 3.7.0 due to missing intrinsics and > this issue is listed in DPDK known issue section. FreeBSD build on gcc > target should work fine. >=20 > Ah, I have not seen this explanation. >=20 > However, we cannot let the build fails. > It is a blocker for patch admission. >=20 > Can you, at least, disable the code for some compiler versions? Hi Jasvinder, Any chance a work-around for this issue. The default compiler on BSD is cla= ng, and the BSD 10 series of releases uses v3.4. This means this functional= ity will be unavailable for anyone using DPDK from BSD ports on BSD 10. /Bruce