[dpdk-dev] [PATCH] hash: fix CRC32c computation
De Lara Guarch, Pablo
pablo.de.lara.guarch at intel.com
Mon Feb 8 15:43:49 CET 2016
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Monday, February 08, 2016 2:40 PM
> To: De Lara Guarch, Pablo
> Subject: FW: [dpdk-dev] [PATCH] hash: fix CRC32c computation
>
>
>
> From: Vincent JARDIN [mailto:vincent.jardin at 6wind.com]
> Sent: Wednesday, December 23, 2015 11:38 AM
> To: Qiu, Michael
> Cc: didier. pallard; De Lara Guarch, Pablo; dev at dpdk.org; Richardson, Bruce
> Subject: Re: [dpdk-dev] [PATCH] hash: fix CRC32c computation
>
>
> Le 23 déc. 2015 10:12, "Qiu, Michael" <michael.qiu at intel.com> a écrit :
> >
> > Is it suitable to put so many code in commit log?
> It is more explicit than a text/comment. I do not think it should be
> maintained code.
> >
> > Thanks,
> > Michael
> > On 12/22/2015 5:36 PM, Didier Pallard wrote:
> > > As demonstrated by the following code, CRC32c computation is not valid
> > > when buffer length is not a multiple of 4 bytes:
> > > (Output obtained by code below)
> > >
> > > CRC of 1 NULL bytes expected: 0x527d5351
> > > soft: 527d5351
> > > rte accelerated: 48674bc7
> > > rte soft: 48674bc7
> > > CRC of 2 NULL bytes expected: 0xf16177d2
> > > soft: f16177d2
> > > rte accelerated: 48674bc7
> > > rte soft: 48674bc7
> > > CRC of 2x1 NULL bytes expected: 0xf16177d2
> > > soft: f16177d2
> > > rte accelerated: 8c28b28a
> > > rte soft: 8c28b28a
> > > CRC of 3 NULL bytes expected: 0x6064a37a
> > > soft: 6064a37a
> > > rte accelerated: 48674bc7
> > > rte soft: 48674bc7
> > > CRC of 4 NULL bytes expected: 0x48674bc7
> > > soft: 48674bc7
> > > rte accelerated: 48674bc7
> > > rte soft: 48674bc7
> > >
> > > Values returned by rte_hash_crc functions does not match the one
> > > computed by a trivial crc32c implementation.
> > >
> > > ARM code is a guess, it is not tested, neither compiled.
It fails on ARM. Not sure what the correct format is:
/home/pablo/dpdk-2.3-rc0/arm64-armv8a-linuxapp-gcc/include/rte_hash_crc.h: In function ‘rte_hash_crc’:
/home/pablo/dpdk-2.3-rc0/arm64-armv8a-linuxapp-gcc/include/rte_crc_arm64.h:67:2: error: invalid 'asm': incompatible floating point / vector register operand for '%h'
__asm__ volatile(
^
/home/pablo/dpdk-2.3-rc0/arm64-armv8a-linuxapp-gcc/include/rte_crc_arm64.h:56:2: error: invalid 'asm': incompatible floating point / vector register operand for '%b'
__asm__ volatile(
Thanks,
Pablo
More information about the dev
mailing list