Re: [PATCH 2/3 v2] Optimize CRC32C calculation with PCLMULQDQinstruction

From: Tim Chen
Date: Tue Feb 26 2013 - 11:57:46 EST

On Tue, 2013-02-26 at 17:54 +0800, Herbert Xu wrote:
> On Thu, Sep 27, 2012 at 03:44:22PM -0700, Tim Chen wrote:
> > This patch adds the crc_pcl function that calculates CRC32C checksum using the
> > PCLMULQDQ instruction on processors that support this feature. This will
> > provide speedup over using CRC32 instruction only.
> > The usage of PCLMULQDQ necessitate the invocation of kernel_fpu_begin and
> > kernel_fpu_end and incur some overhead. So the new crc_pcl function is only
> > invoked for buffer size of 512 bytes or more. Larger sized
> > buffers will expect to see greater speedup. This feature is best used coupled
> > with eager_fpu which reduces the kernel_fpu_begin/end overhead. For
> > buffer size of 1K the speedup is around 1.6x and for buffer size greater than
> > 4K, the speedup is around 3x compared to original implementation in crc32c-intel
> > module. Test was performed on Sandy Bridge based platform with constant frequency
> > set for cpu.
> >
> > A white paper detailing the algorithm can be found here:
> >
> >
> > Signed-off-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>


BTW, Herbert, I've also sent you a patch a few days ago to update the
link to the whitepaper on the CRC32C algorithm in the code. Wonder if
you have received it. Thanks.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at