Thread (1 message) 1 message, 1 author, 2016-02-08

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help