[PATCH v7 0/3] erofs-utils: introduce xattr name bloom filter
Jingbo Xu
jefflexu at linux.alibaba.com
Wed Aug 30 00:55:01 AEST 2023
changes since v6:
- patch 1: polish license disclaimer; tweak included headers (Gao Xiang)
- patch 2: drop unused `EROFS_XATTR_NAME_LEN_MAX`; polish commit message
(Gao Xiang)
- patch 3: add warning when failed to calculate hashbit; tweak code of
assigning `header->h_name_filter` (Gao Xiang)
changes since v5:
- patch 1: update distribution license
- patch 3: rebase to the latest -dev branch
changes since v4:
- patch 3: the feature is refactored and implemented in a more cohesive
way, that is, the hashbit is calculated in erofs_export_xattr_ibody().
For xattr_item in the long xattr name prefix style, reconstruct the
full xattr name first, then derive the corresponding predefined short
name prefix and finally calculate the hashbit.
changes since v3:
- patch 3: "-Exattr-name-filter" option rather than "--xattr-filter"
option is newly introduced to enable this feature (Gao Xiang)
changes since v2:
- patch 2: introduce xattr_filter_reserved in on-disk superblock;
remove EROFS_XATTR_FILTER_MASK
- patch 3: xattr_filter_reserved is always initialized to 0 by default
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)
- fix the value of EROFS_FEATURE_COMPAT_XATTR_FILTER; rename
EROFS_XATTR_BLOOM_* to EROFS_XATTR_FILTER_* (Gao Xiang)
RFC: https://lore.kernel.org/all/20230621083939.128961-1-jefflexu@linux.alibaba.com/
v2: https://lore.kernel.org/all/20230705071017.104130-1-jefflexu@linux.alibaba.com/
v3: https://lore.kernel.org/all/20230712121331.99671-1-jefflexu@linux.alibaba.com/
v4: https://lore.kernel.org/all/20230714025330.42950-1-jefflexu@linux.alibaba.com/
v5: https://lore.kernel.org/all/20230722042414.126630-1-jefflexu@linux.alibaba.com/
v6: https://lore.kernel.org/all/20230829124127.36719-1-jefflexu@linux.alibaba.com/
The xattr bloom filter feature is used to boost the negative xattr
lookup.
Refer to the kernel patch set [*] for more details.
[*] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fd73a4395d47
Jingbo Xu (3):
erofs-utils: add xxh32 library
erofs-utils: update on-disk format for xattr name filter
erofs-utils: mkfs: enable xattr name filter
include/erofs/config.h | 1 +
include/erofs/internal.h | 1 +
include/erofs/xxhash.h | 27 +++++++++
include/erofs_fs.h | 10 +++-
lib/Makefile.am | 3 +-
lib/xattr.c | 65 ++++++++++++++++++++
lib/xxhash.c | 126 +++++++++++++++++++++++++++++++++++++++
mkfs/main.c | 7 +++
8 files changed, 237 insertions(+), 3 deletions(-)
create mode 100644 include/erofs/xxhash.h
create mode 100644 lib/xxhash.c
--
2.19.1.6.gb485710b
More information about the Linux-erofs
mailing list