Hi,
Thanks for testing it on a big endian platform and also fixing the error found 
on that platform! Good to know it calculated the right value at least.

-- 
/Kristoffer Brånemyr 

    Den söndag 27 december 2020 00:55:11 CET, Pádraig Brady 
<p...@draigbrady.com> skrev:  
 
 On 26/12/2020 22:54, Pádraig Brady wrote:
> On 26/12/2020 13:53, Kristoffer Brånemyr via GNU coreutils General Discussion 
> wrote:
>> Hi,
>>
>> I modified cksum to use the well known slice by 8 algorithm in the CRC 
>> calculation, to make it faster. On my machine it is several times faster 
>> than the unmodified cksum. It took me a while to figure out since the CRC 
>> calculation in cksum shifts in the opposite direction than most other 
>> implementations I've seen. I would be glad if someone could check this patch 
>> on a big endian machine to see if it produces the correct output! It think 
>> it might, but not sure.
>>
>> You can see the patch here:
>> https://github.com/coreutils/coreutils/pull/43
> 
> Thanks for the patch!
> I wouldn't focus on big endian perf,
> but I will test on a SPARC-Enterprise-T5220 system I have access to.
> 
> I would explicitly depend on byteswap in bootstrap.conf now,
> rather than relying on the transitive dependency through md5sum etc.

A 100MB file improves from 2.50s to 1.80s on the T5220
A 100MB file improves from 0.54s to 0.13s on an i3-2310M

I applied the attached to avoid:

src/cksum.c:201:15:
  error: cast increases required alignment of target type
  [-Werror=cast-align]
  201 |      datap = (uint32_t *)buf;
      |              ^

I'll apply after a bit more testing.

thanks again,
Pádraig
  

Reply via email to