|
|
Log in / Subscribe / Register

erofs: introduce xattr name bloom filter

From:  Jingbo Xu <jefflexu-AT-linux.alibaba.com>
To:  hsiangkao-AT-linux.alibaba.com, chao-AT-kernel.org, huyue2-AT-coolpad.com, linux-erofs-AT-lists.ozlabs.org
Subject:  [PATCH v5 0/2] erofs: introduce xattr name bloom filter
Date:  Fri, 21 Jul 2023 18:49:21 +0800
Message-ID:  <20230721104923.20236-1-jefflexu@linux.alibaba.com>
Cc:  linux-kernel-AT-vger.kernel.org, alexl-AT-redhat.com
Archive-link:  Article

changes since v4:
- patch 2: polish commit message; declare erofs_inode.xattr_name_filter
  as unsigned int instead of unsigned long; rename `bit` to `hashbit`;
  use bitwise and instead of test_bit() to test the hashbit (Gao Xiang)

changes since v3:
- patch 1: add "Reviewed-by" tag (Gao Xiang)
- patch 2: make CONFIG_EROFS_FS_XATTR select CONFIG_XXHASH (Gao Xiang)

changes since v2:
- patch 1: polish the commit message; introduce xattr_filter_reserved in
  on-disk superblock; remove EROFS_XATTR_FILTER_MASK (Gao Xiang)

changes since RFC:
- the number of hash functions is 1, and now it's implemented as:
    xxh32(name, strlen(name), EROFS_XATTR_FILTER_SEED + index),
  where the constant magic number EROFS_XATTR_FILTER_SEED [*] is used to
  give a better spread for the mapping. (Alexander Larsson)
  Refer to patch 1 for more details.
- fix the value of EROFS_FEATURE_COMPAT_XATTR_BLOOM; rename
  EROFS_XATTR_BLOOM_* to EROFS_XATTR_FILTER_* (Gao Xiang)
- pass all tests in erofs-utils (MKFS_OPTIONS="--xattr-filter" make
  check)

[*] https://lore.kernel.org/all/74a8a369-c3b0-b338-fa8f-fdd7c...
RFC: https://lore.kernel.org/all/20230621083209.116024-1-jeffl...
v2: https://lore.kernel.org/all/20230705070427.92579-1-jeffle...
v3: https://lore.kernel.org/all/20230712115123.33712-1-jeffle...
v4: https://lore.kernel.org/all/20230714031034.53210-1-jeffle...


Jingbo Xu (2):
  erofs: update on-disk format for xattr name filter
  erofs: boost negative xattr lookup with bloom filter

 fs/erofs/Kconfig    |  1 +
 fs/erofs/erofs_fs.h | 10 ++++++++--
 fs/erofs/internal.h |  3 +++
 fs/erofs/super.c    |  1 +
 fs/erofs/xattr.c    | 14 ++++++++++++++
 5 files changed, 27 insertions(+), 2 deletions(-)

-- 
2.19.1.6.gb485710b



Copyright © 2023, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds