coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add slice by 8 algorithm to cksum to make it faster.


From: Pádraig Brady
Subject: Re: [PATCH] Add slice by 8 algorithm to cksum to make it faster.
Date: Sat, 26 Dec 2020 23:54:09 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Thunderbird/84.0

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

Attachment: cksum-align.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]