> -----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