Re: [PATCH 0/4] add crc64 calculation as kernel library

From: Hannes Reinecke
Date: Tue Jul 17 2018 - 01:47:02 EST


On 07/16/2018 06:55 PM, Coly Li wrote:
> This patch set adds basic implementation of crc64 calculation as Linux
> kernel library. Since bcache already does crc64 by itself, this patch
> set also modifies bcache code to use the new crc64 library routine.
>
> bcache uses crc64 as storage checksum, if a change of crc lib routines
> results an inconsistent result, the unmatched checksum may make bcache
> 'think' the on-disk is corrupted, such change should be avoided or
> detected as early as possible. Therefore the last patch in this series
> adds a crc test framework, to check consistency of different calculations.
>
> Coly Li
>
> Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Luis R. Rodriguez <mcgrof@xxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Michael Lyle <mlyle@xxxxxxxx>
> Cc: Kent Overstreet <kent.overstreet@xxxxxxxxx>
> Cc: Kate Stewart <kstewart@xxxxxxxxxxxxxxxxxxx>
> ---
> Andy Shevchenko (1):
> lib/crc64: add crc64 option to lib/Kconfig
>
> Coly Li (3):
> lib: add crc64 calculation routines
> bcache: use routines from lib/crc64.c for CRC64 calculation
> lib/test_crc: Add test cases for crc calculation
>
> drivers/md/bcache/bcache.h | 7 +-
> drivers/md/bcache/btree.c | 2 +-
> drivers/md/bcache/request.c | 2 +-
> drivers/md/bcache/super.c | 5 +-
> drivers/md/bcache/util.c | 131 ----------------------------------
> drivers/md/bcache/util.h | 5 +-
> include/linux/crc64.h | 15 ++++
> lib/.gitignore | 2 +
> lib/Kconfig | 8 +++
> lib/Kconfig.debug | 11 +++
> lib/Makefile | 12 ++++
> lib/crc64.c | 71 +++++++++++++++++++
> lib/gen_crc64table.c | 76 ++++++++++++++++++++
> lib/test_crc.c | 136 ++++++++++++++++++++++++++++++++++++
> 14 files changed, 341 insertions(+), 142 deletions(-)
> create mode 100644 include/linux/crc64.h
> create mode 100644 lib/crc64.c
> create mode 100644 lib/gen_crc64table.c
> create mode 100644 lib/test_crc.c
>
Actually, I would merge patch 1 & 2 together (pointless to introduce an
option for which no code exists).
Otherwise for the whole series:

Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>

Cheers,

Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@xxxxxxx +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 NÃrnberg
GF: F. ImendÃrffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG NÃrnberg)