The patch titled Subject: Revert "squashfs: provide backing_dev_info in order to disable read-ahead" has been added to the -mm mm-nonmm-unstable branch. Its filename is revert-squashfs-provide-backing_dev_info-in-order-to-disable-read-ahead.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/revert-squashfs-provide-backing_dev_info-in-order-to-disable-read-ahead.patch This patch will later appear in the mm-nonmm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Hsin-Yi Wang <hsinyi@xxxxxxxxxxxx> Subject: Revert "squashfs: provide backing_dev_info in order to disable read-ahead" Date: Mon, 6 Jun 2022 23:03:03 +0800 Patch series "Implement readahead for squashfs", v5. Commit c1f6925e1091("mm: put readahead pages in cache earlier") requires fs to implement readahead callback. Otherwise there will be a performance regression. Commit 9eec1d897139("squashfs: provide backing_dev_info in order to disable read-ahead") mitigates the performance drop issue for squashfs by closing readahead for it. This series implements readahead callback for squashfs. The previous discussion are in [1] and [2]. [1] https://lore.kernel.org/all/CAJMQK-g9G6KQmH-V=BRGX0swZji9Wxe_2c7ht-MMAapdFy2pXw@xxxxxxxxxxxxxx/T/ [2] https://lore.kernel.org/linux-mm/Yn5Yij9pRPCzDozt@xxxxxxxxxxxxxxxxxxxx/t/#m4af4473b94f98a4996cb11756b633a07e5e059d1 This patch (of 3): This reverts commit 9eec1d897139e5d ("squashfs: provide backing_dev_info in order to disable read-ahead"). Revert closing the readahead to squashfs since the readahead callback for squashfs is implemented. Link: https://lkml.kernel.org/r/20220606150305.1883410-1-hsinyi@xxxxxxxxxxxx Link: https://lkml.kernel.org/r/20220606150305.1883410-2-hsinyi@xxxxxxxxxxxx Signed-off-by: Hsin-Yi Wang <hsinyi@xxxxxxxxxxxx> Suggested-by: Xiongwei Song <Xiongwei.Song@xxxxxxxxxxxxx> Cc: Phillip Lougher <phillip@xxxxxxxxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Cc: Zheng Liang <zhengliang6@xxxxxxxxxx> Cc: Zhang Yi <yi.zhang@xxxxxxxxxx> Cc: Hou Tao <houtao1@xxxxxxxxxx> Cc: Miao Xie <miaoxie@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/squashfs/super.c | 33 --------------------------------- 1 file changed, 33 deletions(-) --- a/fs/squashfs/super.c~revert-squashfs-provide-backing_dev_info-in-order-to-disable-read-ahead +++ a/fs/squashfs/super.c @@ -29,7 +29,6 @@ #include <linux/module.h> #include <linux/magic.h> #include <linux/xattr.h> -#include <linux/backing-dev.h> #include "squashfs_fs.h" #include "squashfs_fs_sb.h" @@ -113,24 +112,6 @@ static const struct squashfs_decompresso return decompressor; } -static int squashfs_bdi_init(struct super_block *sb) -{ - int err; - unsigned int major = MAJOR(sb->s_dev); - unsigned int minor = MINOR(sb->s_dev); - - bdi_put(sb->s_bdi); - sb->s_bdi = &noop_backing_dev_info; - - err = super_setup_bdi_name(sb, "squashfs_%u_%u", major, minor); - if (err) - return err; - - sb->s_bdi->ra_pages = 0; - sb->s_bdi->io_pages = 0; - - return 0; -} static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc) { @@ -146,20 +127,6 @@ static int squashfs_fill_super(struct su TRACE("Entered squashfs_fill_superblock\n"); - /* - * squashfs provides 'backing_dev_info' in order to disable read-ahead. For - * squashfs, I/O is not deferred, it is done immediately in read_folio, - * which means the user would always have to wait their own I/O. So the effect - * of readahead is very weak for squashfs. squashfs_bdi_init will set - * sb->s_bdi->ra_pages and sb->s_bdi->io_pages to 0 and close readahead for - * squashfs. - */ - err = squashfs_bdi_init(sb); - if (err) { - errorf(fc, "squashfs init bdi failed"); - return err; - } - sb->s_fs_info = kzalloc(sizeof(*msblk), GFP_KERNEL); if (sb->s_fs_info == NULL) { ERROR("Failed to allocate squashfs_sb_info\n"); _ Patches currently in -mm which might be from hsinyi@xxxxxxxxxxxx are revert-squashfs-provide-backing_dev_info-in-order-to-disable-read-ahead.patch squashfs-implement-readahead.patch