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>, Christoph Hellwig <hch@infradead.org>, Matthew Wilcox <willy@infradead.org>, "Eric W. Biederman" <ebiederm@xmission.com>, Alexey Gladkov <legion@kernel.org>, Chris Wilson <chris@chris-wilson.co.uk>, Matthew Auld <matthew.auld@intel.com>, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 03/16] huge tmpfs: remove shrinklist addition from shmem_setattr() Date: Fri, 30 Jul 2021 00:30:56 -0700 (PDT) [thread overview] Message-ID: <42353193-6896-aa85-9127-78881d5fef66@google.com> (raw) In-Reply-To: <2862852d-badd-7486-3a8e-c5ea9666d6fb@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> --- 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-07-30 7:31 UTC|newest] Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-30 7:22 [PATCH 00/16] tmpfs: HUGEPAGE and MEM_LOCK fcntls and memfds Hugh Dickins 2021-07-30 7:25 ` [PATCH 01/16] huge tmpfs: fix fallocate(vanilla) advance over huge pages Hugh Dickins 2021-07-30 21:36 ` Yang Shi 2021-08-01 3:38 ` Hugh Dickins 2021-08-02 20:36 ` Yang Shi 2021-07-30 7:28 ` [PATCH 02/16] huge tmpfs: fix split_huge_page() after FALLOC_FL_KEEP_SIZE Hugh Dickins 2021-07-30 23:48 ` Yang Shi 2021-07-30 7:30 ` Hugh Dickins [this message] 2021-07-30 21:50 ` [PATCH 03/16] huge tmpfs: remove shrinklist addition from shmem_setattr() Yang Shi 2021-07-30 7:36 ` [PATCH 04/16] huge tmpfs: revert shmem's use of transhuge_vma_enabled() Hugh Dickins 2021-07-30 21:56 ` Yang Shi 2021-08-01 4:01 ` Hugh Dickins 2021-08-02 20:39 ` Yang Shi 2021-07-30 7:39 ` [PATCH 05/16] huge tmpfs: move shmem_huge_enabled() upwards Hugh Dickins 2021-07-30 21:57 ` Yang Shi 2021-07-30 7:42 ` [PATCH 06/16] huge tmpfs: shmem_is_huge(vma, inode, index) Hugh Dickins 2021-07-30 23:34 ` Yang Shi 2021-08-01 5:22 ` Hugh Dickins 2021-08-01 5:37 ` Hugh Dickins 2021-08-02 21:14 ` Yang Shi 2021-08-04 8:28 ` Hugh Dickins 2021-08-04 19:01 ` Yang Shi 2021-08-06 5:21 ` Hugh Dickins 2021-08-06 17:41 ` Yang Shi 2021-08-05 23:04 ` Yang Shi 2021-08-06 5:43 ` Hugh Dickins 2021-08-06 17:57 ` Yang Shi 2021-08-12 18:19 ` Yang Shi 2021-07-30 7:45 ` [PATCH 07/16] memfd: memfd_create(name, MFD_HUGEPAGE) for shmem huge pages Hugh Dickins 2021-08-04 14:03 ` Kirill A. Shutemov 2021-08-06 3:33 ` Hugh Dickins 2021-07-30 7:48 ` [PATCH 08/16] huge tmpfs: fcntl(fd, F_HUGEPAGE) and fcntl(fd, F_NOHUGEPAGE) Hugh Dickins 2021-08-04 14:08 ` Kirill A. Shutemov 2021-08-06 4:34 ` Hugh Dickins 2021-07-30 7:51 ` [PATCH 09/16] huge tmpfs: decide stat.st_blksize by shmem_is_huge() Hugh Dickins 2021-07-30 23:40 ` Yang Shi 2021-07-30 7:55 ` [PATCH 10/16] tmpfs: fcntl(fd, F_MEM_LOCK) to memlock a tmpfs file Hugh Dickins 2021-08-03 1:38 ` Matthew Wilcox 2021-08-04 9:15 ` Hugh Dickins 2021-07-30 7:57 ` [PATCH 11/16] tmpfs: fcntl(fd, F_MEM_LOCKED) to test if memlocked Hugh Dickins 2021-07-30 8:00 ` [PATCH 12/16] tmpfs: refuse memlock when fallocated beyond i_size Hugh Dickins 2021-07-30 8:03 ` [PATCH 13/16] mm: bool user_shm_lock(loff_t size, struct ucounts *) Hugh Dickins 2021-07-30 8:06 ` [PATCH 14/16] mm: user_shm_lock(,,getuc) and user_shm_unlock(,,putuc) Hugh Dickins 2021-07-30 8:09 ` [PATCH 15/16] tmpfs: permit changing size of memlocked file Hugh Dickins 2021-07-30 8:13 ` [PATCH 16/16] memfd: memfd_create(name, MFD_MEM_LOCK) for memlocked shmem 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=42353193-6896-aa85-9127-78881d5fef66@google.com \ --to=hughd@google.com \ --cc=akpm@linux-foundation.org \ --cc=chris@chris-wilson.co.uk \ --cc=ebiederm@xmission.com \ --cc=hch@infradead.org \ --cc=kirill.shutemov@linux.intel.com \ --cc=legion@kernel.org \ --cc=linmiaohe@huawei.com \ --cc=linux-api@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=matthew.auld@intel.com \ --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 \ --subject='Re: [PATCH 03/16] huge tmpfs: remove shrinklist addition from shmem_setattr()' \ /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: link
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).