Re: [PATCH] hash: fix CRC32c computation
From: De Lara Guarch, Pablo <hidden>
Date: 2016-02-08 14:43:53
-----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@6wind.com] Sent: Wednesday, December 23, 2015 11:38 AM To: Qiu, Michael Cc: didier. pallard; De Lara Guarch, Pablo; dev@dpdk.org; Richardson, Bruce Subject: Re: [dpdk-dev] [PATCH] hash: fix CRC32c computation Le 23 déc. 2015 10:12, "Qiu, Michael" [off-list ref] a écrit :quoted
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.quoted
Thanks, Michael On 12/22/2015 5:36 PM, Didier Pallard wrote:quoted
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