LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Hugh Dickins <hughd@google.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: Hugh Dickins <hughd@google.com>, Shakeel Butt <shakeelb@google.com>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Yang Shi <shy828301@gmail.com>, Miaohe Lin <linmiaohe@huawei.com>, Mike Kravetz <mike.kravetz@oracle.com>, Michal Hocko <mhocko@suse.com>, Rik van Riel <riel@surriel.com>, Matthew Wilcox <willy@infradead.org>, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 3/9] huge tmpfs: remove shrinklist addition from shmem_setattr() Date: Tue, 17 Aug 2021 01:10:31 -0700 (PDT) [thread overview] Message-ID: <b73b3492-8822-18f9-83e2-938528cdde94@google.com> (raw) In-Reply-To: <da632211-8e3e-6b1-aee-ab24734429a0@google.com> There's a block of code in shmem_setattr() to add the inode to shmem_unused_huge_shrink()'s shrinklist when lowering i_size: it dates from before 5.7 changed truncation to do split_huge_page() for itself, and should have been removed at that time. I am over-stating that: split_huge_page() can fail (notably if there's an extra reference to the page at that time), so there might be value in retrying. But there were already retries as truncation worked through the tails, and this addition risks repeating unsuccessful retries indefinitely: I'd rather remove it now, and work on reducing the chance of split_huge_page() failures separately, if we need to. Fixes: 71725ed10c40 ("mm: huge tmpfs: try to split_huge_page() when punching hole") Signed-off-by: Hugh Dickins <hughd@google.com> Reviewed-by: Yang Shi <shy828301@gmail.com> --- mm/shmem.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index 24c9da6b41c2..ce3ccaac54d6 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1061,7 +1061,6 @@ static int shmem_setattr(struct user_namespace *mnt_userns, { struct inode *inode = d_inode(dentry); struct shmem_inode_info *info = SHMEM_I(inode); - struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb); int error; error = setattr_prepare(&init_user_ns, dentry, attr); @@ -1097,24 +1096,6 @@ static int shmem_setattr(struct user_namespace *mnt_userns, if (oldsize > holebegin) unmap_mapping_range(inode->i_mapping, holebegin, 0, 1); - - /* - * Part of the huge page can be beyond i_size: subject - * to shrink under memory pressure. - */ - if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) { - spin_lock(&sbinfo->shrinklist_lock); - /* - * _careful to defend against unlocked access to - * ->shrink_list in shmem_unused_huge_shrink() - */ - if (list_empty_careful(&info->shrinklist)) { - list_add_tail(&info->shrinklist, - &sbinfo->shrinklist); - sbinfo->shrinklist_len++; - } - spin_unlock(&sbinfo->shrinklist_lock); - } } } -- 2.26.2
next prev parent reply other threads:[~2021-08-17 8:10 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-17 8:03 [PATCH 0/9] huge tmpfs: shmem_is_huge() fixes and cleanups Hugh Dickins 2021-08-17 8:06 ` [PATCH 1/9] huge tmpfs: fix fallocate(vanilla) advance over huge pages Hugh Dickins 2021-08-17 8:08 ` [PATCH 2/9] huge tmpfs: fix split_huge_page() after FALLOC_FL_KEEP_SIZE Hugh Dickins 2021-08-17 8:10 ` Hugh Dickins [this message] 2021-08-17 8:12 ` [PATCH 4/9] huge tmpfs: revert shmem's use of transhuge_vma_enabled() Hugh Dickins 2021-08-17 8:14 ` [PATCH 5/9] huge tmpfs: move shmem_huge_enabled() upwards Hugh Dickins 2021-08-17 8:17 ` [PATCH 6/9] huge tmpfs: SGP_NOALLOC to stop collapse_file() on race Hugh Dickins 2021-08-17 20:14 ` Yang Shi 2021-08-17 8:19 ` [PATCH 7/9] huge tmpfs: shmem_is_huge(vma, inode, index) Hugh Dickins 2021-08-17 20:16 ` Yang Shi 2021-08-17 8:22 ` [PATCH 8/9] huge tmpfs: decide stat.st_blksize by shmem_is_huge() Hugh Dickins 2021-08-17 8:28 ` [PATCH 9/9] shmem: shmem_writepage() split unlikely i915 THP Hugh Dickins
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=b73b3492-8822-18f9-83e2-938528cdde94@google.com \ --to=hughd@google.com \ --cc=akpm@linux-foundation.org \ --cc=kirill.shutemov@linux.intel.com \ --cc=linmiaohe@huawei.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@suse.com \ --cc=mike.kravetz@oracle.com \ --cc=riel@surriel.com \ --cc=shakeelb@google.com \ --cc=shy828301@gmail.com \ --cc=willy@infradead.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).