Whamcloud - gitweb
LU-14958 kernel: use rhashtable for revoke records in jbd2 30/50730/2
authorAlex Zhuravlev <bzzz@whamcloud.com>
Mon, 24 Apr 2023 19:56:51 +0000 (12:56 -0700)
committerOleg Drokin <green@whamcloud.com>
Sat, 29 Apr 2023 01:47:25 +0000 (01:47 +0000)
commit52bc546e91e415315e6cf9a46608264122e64ef3
tree2b806a479a7138e8407fdb50e479dd1df0e63dfc
parent501466cfa46361323d4bd7951a0708a0d8688a17
LU-14958 kernel: use rhashtable for revoke records in jbd2

resizable hashtable should improve journal replay time when
the latter has got million of revoke records. notice that
rhashtable is used during replay only as removal with list_del()
is less expensive and it's used a lot during regular processing.

before:
1048576 records - 95 seconds
2097152 records - 580 seconds

after:
1048576 records - 2 seconds
2097152 records - 3 seconds
4194304 records - 7 seconds

Lustre-change: https://review.whamcloud.com/45122
Lustre-commit: c3bb2b778d6b40a5cecb01993b55fcc107305b4a

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I9a9e3801223fa9e36cbf6d2ef5ddbad5dff3e19d
Reviewed-by: jsimmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Andrew Perepechko <andrew.perepechko@hpe.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50730
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
16 files changed:
lustre/kernel_patches/patches/jbd2-revoke-rhashtable-rhel7.patch [new file with mode: 0644]
lustre/kernel_patches/patches/jbd2-revoke-rhashtable-rhel8.4.patch [new file with mode: 0644]
lustre/kernel_patches/series/3.10-rhel7.6.series
lustre/kernel_patches/series/3.10-rhel7.7.series
lustre/kernel_patches/series/3.10-rhel7.8.series
lustre/kernel_patches/series/3.10-rhel7.9.series
lustre/kernel_patches/series/4.14-rhel7.5.series
lustre/kernel_patches/series/4.14-rhel7.6.series
lustre/kernel_patches/series/4.18-rhel8.1.series
lustre/kernel_patches/series/4.18-rhel8.2.series
lustre/kernel_patches/series/4.18-rhel8.3.series
lustre/kernel_patches/series/4.18-rhel8.4.series
lustre/kernel_patches/series/4.18-rhel8.5.series
lustre/kernel_patches/series/4.18-rhel8.6.series
lustre/kernel_patches/series/4.18-rhel8.7.series
lustre/kernel_patches/series/4.18-rhel8.series