From: Sasha Levin Date: Mon, 4 Dec 2023 19:45:44 +0000 (-0500) Subject: Drop ext4-improve-write-performance-with-disabled-delallo.patch X-Git-Tag: v4.14.332~23^2~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d690792cb3fdf9edfccaff2fdf7b265736cdc5c;p=thirdparty%2Fkernel%2Fstable-queue.git Drop ext4-improve-write-performance-with-disabled-delallo.patch Signed-off-by: Sasha Levin --- diff --git a/queue-4.19/ext4-improve-write-performance-with-disabled-delallo.patch b/queue-4.19/ext4-improve-write-performance-with-disabled-delallo.patch deleted file mode 100644 index 046912d8032..00000000000 --- a/queue-4.19/ext4-improve-write-performance-with-disabled-delallo.patch +++ /dev/null @@ -1,47 +0,0 @@ -From b3e650cf14902f40db91bbe526e2bb107cb65f04 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 20 May 2022 13:14:02 +0200 -Subject: ext4: improve write performance with disabled delalloc - -From: Jan Kara - -[ Upstream commit 8d5459c11f548131ce48b2fbf45cccc5c382558f ] - -When delayed allocation is disabled (either through mount option or -because we are running low on free space), ext4_write_begin() allocates -blocks with EXT4_GET_BLOCKS_IO_CREATE_EXT flag. With this flag extent -merging is disabled and since ext4_write_begin() is called for each page -separately, we end up with a *lot* of 1 block extents in the extent tree -and following writeback is writing 1 block at a time which results in -very poor write throughput (4 MB/s instead of 200 MB/s). These days when -ext4_get_block_unwritten() is used only by ext4_write_begin(), -ext4_page_mkwrite() and inline data conversion, we can safely allow -extent merging to happen from these paths since following writeback will -happen on different boundaries anyway. So use -EXT4_GET_BLOCKS_CREATE_UNRIT_EXT instead which restores the performance. - -Signed-off-by: Jan Kara -Link: https://lore.kernel.org/r/20220520111402.4252-1-jack@suse.cz -Signed-off-by: Theodore Ts'o -Stable-dep-of: 2cd8bdb5efc1 ("ext4: mark buffer new if it is unwritten to avoid stale data exposure") -Signed-off-by: Sasha Levin ---- - fs/ext4/inode.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c -index 646285fbc9fc0..949c5189c9be8 100644 ---- a/fs/ext4/inode.c -+++ b/fs/ext4/inode.c -@@ -831,7 +831,7 @@ int ext4_get_block_unwritten(struct inode *inode, sector_t iblock, - ext4_debug("ext4_get_block_unwritten: inode %lu, create flag %d\n", - inode->i_ino, create); - return _ext4_get_block(inode, iblock, bh_result, -- EXT4_GET_BLOCKS_IO_CREATE_EXT); -+ EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT); - } - - /* Maximum number of blocks we map for direct IO at once. */ --- -2.42.0 - diff --git a/queue-4.19/series b/queue-4.19/series index ead3abd9dcc..c8cfd9e372f 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -47,7 +47,6 @@ ravb-fix-races-between-ravb_tx_timeout_work-and-net-.patch net-ravb-start-tx-queues-after-hw-initialization-suc.patch perf-intel-pt-adjust-sample-flags-for-vm-exit.patch perf-intel-pt-fix-async-branch-flags.patch -ext4-improve-write-performance-with-disabled-delallo.patch ext4-mark-buffer-new-if-it-is-unwritten-to-avoid-sta.patch smb3-fix-touch-h-of-symlink.patch pci-let-pci_disable_link_state-propagate-errors.patch diff --git a/queue-5.10/ext4-improve-write-performance-with-disabled-delallo.patch b/queue-5.10/ext4-improve-write-performance-with-disabled-delallo.patch deleted file mode 100644 index eb352fe43c0..00000000000 --- a/queue-5.10/ext4-improve-write-performance-with-disabled-delallo.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5660cc0ca1a19b62ddee69191ffcb7d81606873d Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 20 May 2022 13:14:02 +0200 -Subject: ext4: improve write performance with disabled delalloc - -From: Jan Kara - -[ Upstream commit 8d5459c11f548131ce48b2fbf45cccc5c382558f ] - -When delayed allocation is disabled (either through mount option or -because we are running low on free space), ext4_write_begin() allocates -blocks with EXT4_GET_BLOCKS_IO_CREATE_EXT flag. With this flag extent -merging is disabled and since ext4_write_begin() is called for each page -separately, we end up with a *lot* of 1 block extents in the extent tree -and following writeback is writing 1 block at a time which results in -very poor write throughput (4 MB/s instead of 200 MB/s). These days when -ext4_get_block_unwritten() is used only by ext4_write_begin(), -ext4_page_mkwrite() and inline data conversion, we can safely allow -extent merging to happen from these paths since following writeback will -happen on different boundaries anyway. So use -EXT4_GET_BLOCKS_CREATE_UNRIT_EXT instead which restores the performance. - -Signed-off-by: Jan Kara -Link: https://lore.kernel.org/r/20220520111402.4252-1-jack@suse.cz -Signed-off-by: Theodore Ts'o -Stable-dep-of: 2cd8bdb5efc1 ("ext4: mark buffer new if it is unwritten to avoid stale data exposure") -Signed-off-by: Sasha Levin ---- - fs/ext4/inode.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c -index 365c4d3a434ab..045f0efb696ad 100644 ---- a/fs/ext4/inode.c -+++ b/fs/ext4/inode.c -@@ -821,7 +821,7 @@ int ext4_get_block_unwritten(struct inode *inode, sector_t iblock, - ext4_debug("ext4_get_block_unwritten: inode %lu, create flag %d\n", - inode->i_ino, create); - return _ext4_get_block(inode, iblock, bh_result, -- EXT4_GET_BLOCKS_IO_CREATE_EXT); -+ EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT); - } - - /* Maximum number of blocks we map for direct IO at once. */ --- -2.42.0 - diff --git a/queue-5.10/series b/queue-5.10/series index cbcf031c474..d7bbd7ccf9c 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -102,7 +102,6 @@ net-ravb-use-pm_runtime_resume_and_get.patch net-ravb-start-tx-queues-after-hw-initialization-suc.patch perf-intel-pt-adjust-sample-flags-for-vm-exit.patch perf-intel-pt-fix-async-branch-flags.patch -ext4-improve-write-performance-with-disabled-delallo.patch ext4-mark-buffer-new-if-it-is-unwritten-to-avoid-sta.patch smb3-fix-touch-h-of-symlink.patch asoc-intel-move-soc_intel_is_foo-helpers-to-a-generi.patch diff --git a/queue-5.15/ext4-improve-write-performance-with-disabled-delallo.patch b/queue-5.15/ext4-improve-write-performance-with-disabled-delallo.patch deleted file mode 100644 index 8239357c536..00000000000 --- a/queue-5.15/ext4-improve-write-performance-with-disabled-delallo.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 2f09b1565e6ec3112a2eb52acfbc41de93550a2f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 20 May 2022 13:14:02 +0200 -Subject: ext4: improve write performance with disabled delalloc - -From: Jan Kara - -[ Upstream commit 8d5459c11f548131ce48b2fbf45cccc5c382558f ] - -When delayed allocation is disabled (either through mount option or -because we are running low on free space), ext4_write_begin() allocates -blocks with EXT4_GET_BLOCKS_IO_CREATE_EXT flag. With this flag extent -merging is disabled and since ext4_write_begin() is called for each page -separately, we end up with a *lot* of 1 block extents in the extent tree -and following writeback is writing 1 block at a time which results in -very poor write throughput (4 MB/s instead of 200 MB/s). These days when -ext4_get_block_unwritten() is used only by ext4_write_begin(), -ext4_page_mkwrite() and inline data conversion, we can safely allow -extent merging to happen from these paths since following writeback will -happen on different boundaries anyway. So use -EXT4_GET_BLOCKS_CREATE_UNRIT_EXT instead which restores the performance. - -Signed-off-by: Jan Kara -Link: https://lore.kernel.org/r/20220520111402.4252-1-jack@suse.cz -Signed-off-by: Theodore Ts'o -Stable-dep-of: 2cd8bdb5efc1 ("ext4: mark buffer new if it is unwritten to avoid stale data exposure") -Signed-off-by: Sasha Levin ---- - fs/ext4/inode.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c -index 64a783f221052..c3b0fc7580e83 100644 ---- a/fs/ext4/inode.c -+++ b/fs/ext4/inode.c -@@ -821,7 +821,7 @@ int ext4_get_block_unwritten(struct inode *inode, sector_t iblock, - ext4_debug("ext4_get_block_unwritten: inode %lu, create flag %d\n", - inode->i_ino, create); - return _ext4_get_block(inode, iblock, bh_result, -- EXT4_GET_BLOCKS_IO_CREATE_EXT); -+ EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT); - } - - /* Maximum number of blocks we map for direct IO at once. */ --- -2.42.0 - diff --git a/queue-5.15/series b/queue-5.15/series index 9b4e05ccfb1..fa895cf984c 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -45,7 +45,6 @@ ravb-separate-handling-of-irq-enable-disable-regs-in.patch ravb-support-separate-line0-desc-line1-err-and-line2.patch net-ravb-stop-dma-in-case-of-failures-on-ravb_open.patch perf-intel-pt-fix-async-branch-flags.patch -ext4-improve-write-performance-with-disabled-delallo.patch ext4-mark-buffer-new-if-it-is-unwritten-to-avoid-sta.patch selftests-resctrl-add-missing-spdx-license-to-makefi.patch selftests-resctrl-move-_gnu_source-define-into-makef.patch diff --git a/queue-5.4/ext4-improve-write-performance-with-disabled-delallo.patch b/queue-5.4/ext4-improve-write-performance-with-disabled-delallo.patch deleted file mode 100644 index d5fe1307d28..00000000000 --- a/queue-5.4/ext4-improve-write-performance-with-disabled-delallo.patch +++ /dev/null @@ -1,47 +0,0 @@ -From b761964a221739a6175a704f4e3304bd8b809f3f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 20 May 2022 13:14:02 +0200 -Subject: ext4: improve write performance with disabled delalloc - -From: Jan Kara - -[ Upstream commit 8d5459c11f548131ce48b2fbf45cccc5c382558f ] - -When delayed allocation is disabled (either through mount option or -because we are running low on free space), ext4_write_begin() allocates -blocks with EXT4_GET_BLOCKS_IO_CREATE_EXT flag. With this flag extent -merging is disabled and since ext4_write_begin() is called for each page -separately, we end up with a *lot* of 1 block extents in the extent tree -and following writeback is writing 1 block at a time which results in -very poor write throughput (4 MB/s instead of 200 MB/s). These days when -ext4_get_block_unwritten() is used only by ext4_write_begin(), -ext4_page_mkwrite() and inline data conversion, we can safely allow -extent merging to happen from these paths since following writeback will -happen on different boundaries anyway. So use -EXT4_GET_BLOCKS_CREATE_UNRIT_EXT instead which restores the performance. - -Signed-off-by: Jan Kara -Link: https://lore.kernel.org/r/20220520111402.4252-1-jack@suse.cz -Signed-off-by: Theodore Ts'o -Stable-dep-of: 2cd8bdb5efc1 ("ext4: mark buffer new if it is unwritten to avoid stale data exposure") -Signed-off-by: Sasha Levin ---- - fs/ext4/inode.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c -index 8a0bca3b653bc..9ca7db0c4039a 100644 ---- a/fs/ext4/inode.c -+++ b/fs/ext4/inode.c -@@ -830,7 +830,7 @@ int ext4_get_block_unwritten(struct inode *inode, sector_t iblock, - ext4_debug("ext4_get_block_unwritten: inode %lu, create flag %d\n", - inode->i_ino, create); - return _ext4_get_block(inode, iblock, bh_result, -- EXT4_GET_BLOCKS_IO_CREATE_EXT); -+ EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT); - } - - /* Maximum number of blocks we map for direct IO at once. */ --- -2.42.0 - diff --git a/queue-5.4/series b/queue-5.4/series index 3148575a5d9..bae3ca58844 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -71,7 +71,6 @@ net-ravb-use-pm_runtime_resume_and_get.patch net-ravb-start-tx-queues-after-hw-initialization-suc.patch perf-intel-pt-adjust-sample-flags-for-vm-exit.patch perf-intel-pt-fix-async-branch-flags.patch -ext4-improve-write-performance-with-disabled-delallo.patch ext4-mark-buffer-new-if-it-is-unwritten-to-avoid-sta.patch smb3-fix-touch-h-of-symlink.patch s390-mm-fix-phys-vs-virt-confusion-in-mark_kernel_px.patch