mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
tmpfs: don't enable large folios if not supported
tmpfs can support large folios, but there are some configurable options (mount options and runtime deny/force) to enable/disable large folio allocation, so there is a performance issue when performing writes without large folios. The issue is similar to commit4e527d5841
("iomap: fault in smaller chunks for non-large folio mappings"). Since 'deny' is for emergencies and 'force' is for testing, performance issues should not be a problem in real production environments, so don't call mapping_set_large_folios() in __shmem_get_inode() when large folio is disabled with mount huge=never option (default policy). Link: https://lkml.kernel.org/r/20241017141742.1169404-1-wangkefeng.wang@huawei.com Fixes:9aac777aaf
("filemap: Convert generic_perform_write() to support large folios") Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Baolin Wang <baolin.wang@linux.alibaba.com> Cc: Christian Brauner <brauner@kernel.org> Cc: David Hildenbrand <david@redhat.com> Cc: Hugh Dickins <hughd@google.com> Cc: Jan Kara <jack@suse.cz> Cc: Matthew Wilcox <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
7146de5ff5
commit
5a90c155de
|
@ -2842,7 +2842,10 @@ static struct inode *__shmem_get_inode(struct mnt_idmap *idmap,
|
|||
cache_no_acl(inode);
|
||||
if (sbinfo->noswap)
|
||||
mapping_set_unevictable(inode->i_mapping);
|
||||
mapping_set_large_folios(inode->i_mapping);
|
||||
|
||||
/* Don't consider 'deny' for emergencies and 'force' for testing */
|
||||
if (sbinfo->huge)
|
||||
mapping_set_large_folios(inode->i_mapping);
|
||||
|
||||
switch (mode & S_IFMT) {
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue
Block a user