Whamcloud - gitweb
LU-16286 ldiskfs: reimplement nodelalloc optimization 21/50821/2
authorAndrew Perepechko <andrew.perepechko@hpe.com>
Mon, 1 May 2023 17:02:54 +0000 (10:02 -0700)
committerOleg Drokin <green@whamcloud.com>
Wed, 10 May 2023 21:27:34 +0000 (21:27 +0000)
fiemap calls perform costly delayed extent search affecting
BRW performance, however, in Lustre we don't use delayed
allocation at all. Let's skip this search completely as we did
in RHEL7.

Lustre-change: https://review.whamcloud.com/49007
Lustre-commit: 3dd73b5c5d61a219c702873711055cb1cc80394a

LU-16286 ldiskfs: add ext4_find_delayed_extent patch to more series

Add rhel8.4/ext4-optimize-find_delayed_extent.patch to RHEL 8.7
and RHEL 8.8 ldiskfs patch series.

Test-Parameters: trivial clientdistro=el8.6 serverdistro=el8.6 testlist=sanity
Test-Parameters: trivial clientdistro=el8.7 serverdistro=el8.7 testlist=sanity
Test-Parameters: trivial clientdistro=el8.8 serverdistro=el8.8 testlist=sanity

Change-Id: I2c3562cf5cbdf3c5532e4b79b28a040a995322b7
Signed-off-by: Andrew Perepechko <andrew.perepechko@hpe.com>
HPE-bug-id: LUS-11161
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Alexander Boyko <alexander.boyko@hpe.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50821
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
ldiskfs/kernel_patches/patches/rhel8.4/ext4-optimize-find_delayed_extent.patch [new file with mode: 0644]
ldiskfs/kernel_patches/series/ldiskfs-4.18-rhel8.4.series
ldiskfs/kernel_patches/series/ldiskfs-4.18-rhel8.5.series
ldiskfs/kernel_patches/series/ldiskfs-4.18-rhel8.6.series
ldiskfs/kernel_patches/series/ldiskfs-4.18-rhel8.7.series
ldiskfs/kernel_patches/series/ldiskfs-4.18-rhel8.8.series

diff --git a/ldiskfs/kernel_patches/patches/rhel8.4/ext4-optimize-find_delayed_extent.patch b/ldiskfs/kernel_patches/patches/rhel8.4/ext4-optimize-find_delayed_extent.patch
new file mode 100644 (file)
index 0000000..a6b156a
--- /dev/null
@@ -0,0 +1,16 @@
+--- linux-stage.orig/fs/ext4/extents.c 2022-09-05 09:04:31.628122705 -0600
++++ linux-stage/fs/ext4/extents.c      2022-09-06 05:32:57.083369853 -0600
+@@ -5064,6 +5064,13 @@ static int ext4_find_delayed_extent(s
+       struct extent_status es;
+       ext4_lblk_t block, next_del;
++      if (!test_opt(inode->i_sb, DELALLOC)) {
++              if (newes->es_pblk == 0)
++                      return 0;
++
++              return EXT_MAX_BLOCKS;
++      }
++
+       if (newes->es_pblk == 0) {
+               ext4_es_find_extent_range(inode, &ext4_es_is_delayed,
+                                         newes->es_lblk,
index 2fe189e..4cf9472 100644 (file)
@@ -32,3 +32,4 @@ rhel8.4/ext4-enc-flag.patch
 base/ext4-delayed-iput.patch
 rhel8.5/ext4-filename-encode.patch
 rhel8/ext4-old_ea_inodes_handling_fix.patch
+rhel8.4/ext4-optimize-find_delayed_extent.patch
index 58634b1..a4237d2 100644 (file)
@@ -32,3 +32,4 @@ rhel8.5/ext4-enc-flag.patch
 base/ext4-delayed-iput.patch
 rhel8.5/ext4-filename-encode.patch
 rhel8/ext4-old_ea_inodes_handling_fix.patch
+rhel8.4/ext4-optimize-find_delayed_extent.patch
index 58634b1..a4237d2 100644 (file)
@@ -32,3 +32,4 @@ rhel8.5/ext4-enc-flag.patch
 base/ext4-delayed-iput.patch
 rhel8.5/ext4-filename-encode.patch
 rhel8/ext4-old_ea_inodes_handling_fix.patch
+rhel8.4/ext4-optimize-find_delayed_extent.patch
index 1cdea2b..63dc6d1 100644 (file)
@@ -32,3 +32,4 @@ rhel8.5/ext4-enc-flag.patch
 base/ext4-delayed-iput.patch
 rhel8.7/ext4-filename-encode.patch
 rhel8/ext4-old_ea_inodes_handling_fix.patch
+rhel8.4/ext4-optimize-find_delayed_extent.patch
index 1cdea2b..63dc6d1 100644 (file)
@@ -32,3 +32,4 @@ rhel8.5/ext4-enc-flag.patch
 base/ext4-delayed-iput.patch
 rhel8.7/ext4-filename-encode.patch
 rhel8/ext4-old_ea_inodes_handling_fix.patch
+rhel8.4/ext4-optimize-find_delayed_extent.patch