From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bruce.richardson@intel.com>
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by dpdk.org (Postfix) with ESMTP id 3E3F229C7
 for <dev@dpdk.org>; Wed,  5 Apr 2017 11:37:24 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=intel;
 t=1491385045; x=1522921045;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=OuhcYguy37GH2nLENdPmmx0YXl9ryuS+SQNrxtq5BKQ=;
 b=vCmCzbaYoEZgrmaipdMR5PtF2NOh0WbgozkkzMIWXysHKgpuVZXk+LQa
 eqOGnuAdhf4iAUUFmPKkhVwY4zHjCQ==;
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 05 Apr 2017 02:37:23 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.36,278,1486454400"; d="scan'208";a="83384740"
Received: from irsmsx106.ger.corp.intel.com ([163.33.3.31])
 by orsmga005.jf.intel.com with ESMTP; 05 Apr 2017 02:37:22 -0700
Received: from irsmsx103.ger.corp.intel.com ([169.254.3.241]) by
 IRSMSX106.ger.corp.intel.com ([169.254.8.202]) with mapi id 14.03.0319.002;
 Wed, 5 Apr 2017 10:37:21 +0100
From: "Richardson, Bruce" <bruce.richardson@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>, "Singh, Jasvinder"
 <jasvinder.singh@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, "olivier.matz@6wind.com"
 <olivier.matz@6wind.com>, "Doherty, Declan" <declan.doherty@intel.com>, "De
 Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>
Thread-Topic: [dpdk-dev] [PATCH v9 0/3] librte_net: add crc computation support
Thread-Index: AQHSretDrwzBA5XzEUKVZYq6+RQjIqG2hDBQ
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>
In-Reply-To: <4843218.AadDjlxfvY@xps13>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjY1MDMyMjMtOGM3OS00MDMxLWE0MzQtMjFiZjk4YWFlMjY5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IkhtVTFoeFhsSWlMSzJ0T0FvUEVNRTJFY1o2OGN1SE1rOXpNOEFcL2FydWJBPSJ9
x-ctpclassification: CTP_IC
dlp-product: dlpe-windows
dlp-version: 10.0.102.7
dlp-reaction: no-action
x-originating-ip: [163.33.239.180]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH v9 0/3] librte_net: add crc
	computation	support
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Apr 2017 09:37:25 -0000



> -----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 <jasvinder.singh@intel.com>
> Cc: dev@dpdk.org; olivier.matz@6wind.com; Doherty, Declan
> <declan.doherty@intel.com>; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>
> 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