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

From: Coly Li
Date: Tue Jul 17 2018 - 02:19:47 EST


On 2018/7/17 1:46 PM, Hannes Reinecke wrote:
> 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
>>

Hi Hannes,

> Actually, I would merge patch 1 & 2 together (pointless to introduce an
> option for which no code exists).

The patch 1 was originally from Andy Shevchenko, and I want to keep his
contribute. If it seems not a good idea from me, I will merge them into
1 patch in v2 series.

> Otherwise for the whole series:
>
> Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>

Thanks.

Coly Li