[v3,3/4] btrfs: use xxhash64 for checksumming
diff mbox series

Message ID 20190826114834.14789-4-jthumshirn@suse.de
State New
Headers show
Series
  • btrfs: support xxhash64 checksums
Related show

Commit Message

Johannes Thumshirn Aug. 26, 2019, 11:48 a.m. UTC
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
---
 fs/btrfs/Kconfig                | 1 +
 fs/btrfs/ctree.h                | 1 +
 fs/btrfs/disk-io.c              | 1 +
 fs/btrfs/super.c                | 1 +
 include/uapi/linux/btrfs_tree.h | 1 +
 5 files changed, 5 insertions(+)

Comments

Nikolay Borisov Aug. 26, 2019, 3:38 p.m. UTC | #1
nit: I'd name this commit  "Add xxhash64 to supported checksum hashes"

Personally, I interpret 'use <some hash> for checksumming' as if you are
modifying code to use that hash. But in fact you are not, at least not
in that patch.

On 26.08.19 г. 14:48 ч., Johannes Thumshirn wrote:
> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
> ---
>  fs/btrfs/Kconfig                | 1 +
>  fs/btrfs/ctree.h                | 1 +
>  fs/btrfs/disk-io.c              | 1 +
>  fs/btrfs/super.c                | 1 +
>  include/uapi/linux/btrfs_tree.h | 1 +
>  5 files changed, 5 insertions(+)
> 
> diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig
> index 38651fae7f21..6d5a01c57da3 100644
> --- a/fs/btrfs/Kconfig
> +++ b/fs/btrfs/Kconfig
> @@ -5,6 +5,7 @@ config BTRFS_FS
>  	select CRYPTO
>  	select CRYPTO_CRC32C
>  	select LIBCRC32C
> +	select CRYPTO_XXHASH
>  	select ZLIB_INFLATE
>  	select ZLIB_DEFLATE
>  	select LZO_COMPRESS
> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> index 139354d02dfa..c62729d5aa6e 100644
> --- a/fs/btrfs/ctree.h
> +++ b/fs/btrfs/ctree.h
> @@ -87,6 +87,7 @@ static const struct btrfs_csums {
>  	const char	*name;
>  } btrfs_csums[] = {
>  	[BTRFS_CSUM_TYPE_CRC32] = { .size = 4, .name = "crc32c" },
> +	[BTRFS_CSUM_TYPE_XXHASH] = { .size = 8, .name = "xxhash64" },
>  };
>  
>  #define BTRFS_EMPTY_DIR_SIZE 0
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index 99dfd889b9f7..ac039a4d23ff 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -352,6 +352,7 @@ static bool btrfs_supported_super_csum(u16 csum_type)
>  {
>  	switch (csum_type) {
>  	case BTRFS_CSUM_TYPE_CRC32:
> +	case BTRFS_CSUM_TYPE_XXHASH:
>  		return true;
>  	default:
>  		return false;
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index 1b151af25772..60116d0410e5 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -2456,3 +2456,4 @@ module_exit(exit_btrfs_fs)
>  
>  MODULE_LICENSE("GPL");
>  MODULE_SOFTDEP("pre: crc32c");
> +MODULE_SOFTDEP("pre: xxhash64");
> diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h
> index b65c7ee75bc7..ba2f125a3a1c 100644
> --- a/include/uapi/linux/btrfs_tree.h
> +++ b/include/uapi/linux/btrfs_tree.h
> @@ -302,6 +302,7 @@
>  /* csum types */
>  enum btrfs_csum_type {
>  	BTRFS_CSUM_TYPE_CRC32	= 0,
> +	BTRFS_CSUM_TYPE_XXHASH	= 1,
>  };
>  
>  /*
>
David Sterba Aug. 26, 2019, 11:21 p.m. UTC | #2
On Mon, Aug 26, 2019 at 06:38:13PM +0300, Nikolay Borisov wrote:
> nit: I'd name this commit  "Add xxhash64 to supported checksum hashes"
> 
> Personally, I interpret 'use <some hash> for checksumming' as if you are
> modifying code to use that hash. But in fact you are not, at least not
> in that patch.

It could be percieved as nitpicking, but this kind of feedback is a
check that the author's intentions are understood by someone else.  Some
subtleties or nuances can be missed by authors and this is maybe
inevitable when one spends significant time on the code or changelog.
The fresh look and first impression is not possible anymore. But this is
how patches are read when found git log.

In this case I agree with you and the use use of 'use' is a bit
misleading, suggesting that xxhash is now default.
Johannes Thumshirn Aug. 27, 2019, 7:27 a.m. UTC | #3
On 27/08/2019 01:21, David Sterba wrote:
> On Mon, Aug 26, 2019 at 06:38:13PM +0300, Nikolay Borisov wrote:
>> nit: I'd name this commit  "Add xxhash64 to supported checksum hashes"
>>
>> Personally, I interpret 'use <some hash> for checksumming' as if you are
>> modifying code to use that hash. But in fact you are not, at least not
>> in that patch.
> 
> It could be percieved as nitpicking, but this kind of feedback is a
> check that the author's intentions are understood by someone else.  Some
> subtleties or nuances can be missed by authors and this is maybe
> inevitable when one spends significant time on the code or changelog.
> The fresh look and first impression is not possible anymore. But this is
> how patches are read when found git log.
> 
> In this case I agree with you and the use use of 'use' is a bit
> misleading, suggesting that xxhash is now default.

No problem. Dave are going to fix it up or do you want me to re-submit?
I don't really care either way.

Byte,
	Johannes

Patch
diff mbox series

diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig
index 38651fae7f21..6d5a01c57da3 100644
--- a/fs/btrfs/Kconfig
+++ b/fs/btrfs/Kconfig
@@ -5,6 +5,7 @@  config BTRFS_FS
 	select CRYPTO
 	select CRYPTO_CRC32C
 	select LIBCRC32C
+	select CRYPTO_XXHASH
 	select ZLIB_INFLATE
 	select ZLIB_DEFLATE
 	select LZO_COMPRESS
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 139354d02dfa..c62729d5aa6e 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -87,6 +87,7 @@  static const struct btrfs_csums {
 	const char	*name;
 } btrfs_csums[] = {
 	[BTRFS_CSUM_TYPE_CRC32] = { .size = 4, .name = "crc32c" },
+	[BTRFS_CSUM_TYPE_XXHASH] = { .size = 8, .name = "xxhash64" },
 };
 
 #define BTRFS_EMPTY_DIR_SIZE 0
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 99dfd889b9f7..ac039a4d23ff 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -352,6 +352,7 @@  static bool btrfs_supported_super_csum(u16 csum_type)
 {
 	switch (csum_type) {
 	case BTRFS_CSUM_TYPE_CRC32:
+	case BTRFS_CSUM_TYPE_XXHASH:
 		return true;
 	default:
 		return false;
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 1b151af25772..60116d0410e5 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -2456,3 +2456,4 @@  module_exit(exit_btrfs_fs)
 
 MODULE_LICENSE("GPL");
 MODULE_SOFTDEP("pre: crc32c");
+MODULE_SOFTDEP("pre: xxhash64");
diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h
index b65c7ee75bc7..ba2f125a3a1c 100644
--- a/include/uapi/linux/btrfs_tree.h
+++ b/include/uapi/linux/btrfs_tree.h
@@ -302,6 +302,7 @@ 
 /* csum types */
 enum btrfs_csum_type {
 	BTRFS_CSUM_TYPE_CRC32	= 0,
+	BTRFS_CSUM_TYPE_XXHASH	= 1,
 };
 
 /*