The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* Re: [PATCH] Revert "tmpfs: don't enable large folios if not supported"
       [not found] <b2c7deee259a94b0d00a7c320d8d24d2c421f761.1776908112.git.baolin.wang@linux.alibaba.com>
@ 2026-05-05 10:46 ` Lorenzo Stoakes
  2026-05-05 10:47   ` Lorenzo Stoakes
  0 siblings, 1 reply; 7+ messages in thread
From: Lorenzo Stoakes @ 2026-05-05 10:46 UTC (permalink / raw)
  To: Baolin Wang
  Cc: akpm, hughd, willy, ziy, david, lance.yang, wangkefeng.wang,
	linux-mm, linux-kernel

On Thu, Apr 23, 2026 at 09:41:42AM +0800, Baolin Wang wrote:
> This reverts commit 5a90c155defa684f3a21f68c3f8e40c056e6114c.
>
> Currently, when shmem mounts are initialized, they only use 'sbinfo->huge' to
> determine whether the shmem mount supports large folios. However, for anonymous
> shmem, whether it supports large folios can be dynamically configured via sysfs
> interfaces, so setting or not setting mapping_set_large_folios() during initialization
> cannot accurately reflect whether anonymous shmem actually supports large folios,
> which has already caused some confusion[1].
>
> Moreover, for tmpfs mounts, relying on 'sbinfo->huge' cannot keep the mapping_set_large_folios()
> setting consistent across all mappings in the entire tmpfs mount. In other words,
> under the same tmpfs mount, after remount, we might end up with some mappings
> supporting large folios (calling mapping_set_large_folios()) while others don't.
>
> After some investigation, I found that the write performance regression addressed
> by commit 5a90c155defa has already been fixed by the following commit 665575cff098b
> ("filemap: move prefaulting out of hot write path"). See the following test data:
>
> Base:
> dd if=/dev/zero of=/mnt/tmpfs/test bs=400K count=10485 (3.2 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=800K count=5242 (3.2 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=1600K count=2621 (3.1 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=2200K count=1906 (3.0 GB/s )
> dd if=/dev/zero of=/mnt/tmpfs/test bs=3000K count=1398 (3.0 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=4500K count=932 (3.1 GB/s)
>
> Base + revert 5a90c155defa:
> dd if=/dev/zero of=/mnt/tmpfs/test bs=400K count=10485 (3.3 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=800K count=5242 (3.3 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=1600K count=2621 (3.2 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=2200K count=1906 (3.1 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/testbs=3000K count=1398 (3.0 GB/s)
> dd if=/dev/zero of=/mnt/tmpfs/test bs=4500K count=932 (3.1 GB/s)
>
> The data is basically consistent with minor fluctuation noise. So we can now
> safely revert commit 5a90c155defa to set mapping_set_large_folios() for all
> shmem mounts unconditionally.
>
> [1] https://lore.kernel.org/all/ec927492-4577-4192-8fad-85eb1bb43121@linux.alibaba.com/
> Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>

Acked-by: Lorenzo Stoakes <ljs@kernel.org>

As David asked, should we have a Fixes tag? What about cc: stable?

Cheers, Lorenzo

> ---
> Note: for more investigation and test data, see:
> https://lore.kernel.org/all/116df9f9-4db7-40d4-a4a4-30a87c0feffa@linux.alibaba.com/
> Thanks Kefeng for confirming the performance issue.
> ---
>  mm/shmem.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 4ecefe02881d..dafbea53b22d 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -3087,10 +3087,7 @@ static struct inode *__shmem_get_inode(struct mnt_idmap *idmap,
>  	cache_no_acl(inode);
>  	if (sbinfo->noswap)
>  		mapping_set_unevictable(inode->i_mapping);
> -
> -	/* Don't consider 'deny' for emergencies and 'force' for testing */
> -	if (sbinfo->huge)
> -		mapping_set_large_folios(inode->i_mapping);
> +	mapping_set_large_folios(inode->i_mapping);
>
>  	switch (mode & S_IFMT) {
>  	default:
> --
> 2.47.3
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "tmpfs: don't enable large folios if not supported"
  2026-05-05 10:46 ` [PATCH] Revert "tmpfs: don't enable large folios if not supported" Lorenzo Stoakes
@ 2026-05-05 10:47   ` Lorenzo Stoakes
  2026-05-06  8:58     ` Baolin Wang
  0 siblings, 1 reply; 7+ messages in thread
From: Lorenzo Stoakes @ 2026-05-05 10:47 UTC (permalink / raw)
  To: Baolin Wang
  Cc: akpm, hughd, willy, ziy, david, lance.yang, wangkefeng.wang,
	linux-mm, linux-kernel

On Tue, May 05, 2026 at 11:46:11AM +0100, Lorenzo Stoakes wrote:
> Acked-by: Lorenzo Stoakes <ljs@kernel.org>
>
> As David asked, should we have a Fixes tag? What about cc: stable?

Oh he mentioned link :P yes that too ;)

>
> Cheers, Lorenzo
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "tmpfs: don't enable large folios if not supported"
  2026-05-05 10:47   ` Lorenzo Stoakes
@ 2026-05-06  8:58     ` Baolin Wang
  2026-05-11 12:03       ` Lorenzo Stoakes
  0 siblings, 1 reply; 7+ messages in thread
From: Baolin Wang @ 2026-05-06  8:58 UTC (permalink / raw)
  To: Lorenzo Stoakes
  Cc: akpm, hughd, willy, ziy, david, lance.yang, wangkefeng.wang,
	linux-mm, linux-kernel



On 5/5/26 6:47 PM, Lorenzo Stoakes wrote:
> On Tue, May 05, 2026 at 11:46:11AM +0100, Lorenzo Stoakes wrote:
>> Acked-by: Lorenzo Stoakes <ljs@kernel.org>
>>
>> As David asked, should we have a Fixes tag? What about cc: stable?

Sure. But this fix tag depends on the commit 665575cff098b, so the fixes 
tag should be:

Fixes: 5a90c155defa ("tmpfs: don't enable large folios if not supported")
Depends-on: 665575cff098b ("filemap: move prefaulting out of hot write 
path").

I don't think we need to cc stable, as it doesn't appear to cause any 
serious issues currently.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "tmpfs: don't enable large folios if not supported"
  2026-05-06  8:58     ` Baolin Wang
@ 2026-05-11 12:03       ` Lorenzo Stoakes
  2026-05-11 22:01         ` Andrew Morton
  0 siblings, 1 reply; 7+ messages in thread
From: Lorenzo Stoakes @ 2026-05-11 12:03 UTC (permalink / raw)
  To: Baolin Wang
  Cc: akpm, hughd, willy, ziy, david, lance.yang, wangkefeng.wang,
	linux-mm, linux-kernel

On Wed, May 06, 2026 at 04:58:20PM +0800, Baolin Wang wrote:
>
>
> On 5/5/26 6:47 PM, Lorenzo Stoakes wrote:
> > On Tue, May 05, 2026 at 11:46:11AM +0100, Lorenzo Stoakes wrote:
> > > Acked-by: Lorenzo Stoakes <ljs@kernel.org>
> > >
> > > As David asked, should we have a Fixes tag? What about cc: stable?
>
> Sure. But this fix tag depends on the commit 665575cff098b, so the fixes tag
> should be:
>
> Fixes: 5a90c155defa ("tmpfs: don't enable large folios if not supported")
> Depends-on: 665575cff098b ("filemap: move prefaulting out of hot write
> path").

Oh is Depends-on a tag? Wasn't aware of it :>)

>
> I don't think we need to cc stable, as it doesn't appear to cause any
> serious issues currently.

Ack ok!

Cheers, Lorenzo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "tmpfs: don't enable large folios if not supported"
  2026-05-11 12:03       ` Lorenzo Stoakes
@ 2026-05-11 22:01         ` Andrew Morton
  2026-05-12  0:55           ` Baolin Wang
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Morton @ 2026-05-11 22:01 UTC (permalink / raw)
  To: Lorenzo Stoakes
  Cc: Baolin Wang, hughd, willy, ziy, david, lance.yang,
	wangkefeng.wang, linux-mm, linux-kernel

On Mon, 11 May 2026 13:03:04 +0100 Lorenzo Stoakes <ljs@kernel.org> wrote:

> On Wed, May 06, 2026 at 04:58:20PM +0800, Baolin Wang wrote:
> >
> >
> > On 5/5/26 6:47 PM, Lorenzo Stoakes wrote:
> > > On Tue, May 05, 2026 at 11:46:11AM +0100, Lorenzo Stoakes wrote:
> > > > Acked-by: Lorenzo Stoakes <ljs@kernel.org>
> > > >
> > > > As David asked, should we have a Fixes tag? What about cc: stable?
> >
> > Sure. But this fix tag depends on the commit 665575cff098b, so the fixes tag
> > should be:
> >
> > Fixes: 5a90c155defa ("tmpfs: don't enable large folios if not supported")
> > Depends-on: 665575cff098b ("filemap: move prefaulting out of hot write
> > path").
> 
> Oh is Depends-on a tag? Wasn't aware of it :>)

It is not.

hp2:/usr/src/25> grep -ri Depends-on Documentation | wc -l 
0

But it is!

hp2:/usr/src/25> grep -ri Depends-on ../gitlog | wc -l    
156

I actually removed it because a) various tools whine at me and b) we
didn't cc:stable anyway.

Please let's not add new metadata without having told others what that
metadata means?

"Fixes:" should be sufficient.  I interpret Fixes: as "apply this to any
kernel which contains <that>".  Is more needed?


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "tmpfs: don't enable large folios if not supported"
  2026-05-11 22:01         ` Andrew Morton
@ 2026-05-12  0:55           ` Baolin Wang
  2026-05-12  1:15             ` Andrew Morton
  0 siblings, 1 reply; 7+ messages in thread
From: Baolin Wang @ 2026-05-12  0:55 UTC (permalink / raw)
  To: Andrew Morton, Lorenzo Stoakes
  Cc: hughd, willy, ziy, david, lance.yang, wangkefeng.wang, linux-mm,
	linux-kernel



On 5/12/26 6:01 AM, Andrew Morton wrote:
> On Mon, 11 May 2026 13:03:04 +0100 Lorenzo Stoakes <ljs@kernel.org> wrote:
> 
>> On Wed, May 06, 2026 at 04:58:20PM +0800, Baolin Wang wrote:
>>>
>>>
>>> On 5/5/26 6:47 PM, Lorenzo Stoakes wrote:
>>>> On Tue, May 05, 2026 at 11:46:11AM +0100, Lorenzo Stoakes wrote:
>>>>> Acked-by: Lorenzo Stoakes <ljs@kernel.org>
>>>>>
>>>>> As David asked, should we have a Fixes tag? What about cc: stable?
>>>
>>> Sure. But this fix tag depends on the commit 665575cff098b, so the fixes tag
>>> should be:
>>>
>>> Fixes: 5a90c155defa ("tmpfs: don't enable large folios if not supported")
>>> Depends-on: 665575cff098b ("filemap: move prefaulting out of hot write
>>> path").
>>
>> Oh is Depends-on a tag? Wasn't aware of it :>)
> 
> It is not.
> 
> hp2:/usr/src/25> grep -ri Depends-on Documentation | wc -l
> 0
> 
> But it is!
> 
> hp2:/usr/src/25> grep -ri Depends-on ../gitlog | wc -l
> 156
> 
> I actually removed it because a) various tools whine at me and b) we
> didn't cc:stable anyway.

Okay, I remember I've seen that tag :)

> 
> Please let's not add new metadata without having told others what that
> metadata means?
> 
> "Fixes:" should be sufficient.  I interpret Fixes: as "apply this to any
> kernel which contains <that>".  Is more needed?

My concern is that if someone backports this patch to an older kernel 
version without also backporting commit 665575cff098b, it would cause a 
performance regression.

Is there a good way to mark this kind of dependency on another patch? 
But I've already described this potential dependency in the commit 
message, so I'm fine with just adding the "Fixes:" tag.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "tmpfs: don't enable large folios if not supported"
  2026-05-12  0:55           ` Baolin Wang
@ 2026-05-12  1:15             ` Andrew Morton
  0 siblings, 0 replies; 7+ messages in thread
From: Andrew Morton @ 2026-05-12  1:15 UTC (permalink / raw)
  To: Baolin Wang
  Cc: Lorenzo Stoakes, hughd, willy, ziy, david, lance.yang,
	wangkefeng.wang, linux-mm, linux-kernel

On Tue, 12 May 2026 08:55:05 +0800 Baolin Wang <baolin.wang@linux.alibaba.com> wrote:

> > 
> > Please let's not add new metadata without having told others what that
> > metadata means?
> > 
> > "Fixes:" should be sufficient.  I interpret Fixes: as "apply this to any
> > kernel which contains <that>".  Is more needed?
> 
> My concern is that if someone backports this patch to an older kernel 
> version without also backporting commit 665575cff098b, it would cause a 
> performance regression.
> 
> Is there a good way to mark this kind of dependency on another patch? 

Not that I know of.  Has someone sent 665575cff098b to -stable
maintainers and asked them to treat it as Fixes: 5a90c155defa?

> But I've already described this potential dependency in the commit 
> message, so I'm fine with just adding the "Fixes:" tag.

Yeah, I guess the supporting text will help clear confusion.

But you're right - our tooling should be able to express such things.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-05-12  1:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <b2c7deee259a94b0d00a7c320d8d24d2c421f761.1776908112.git.baolin.wang@linux.alibaba.com>
2026-05-05 10:46 ` [PATCH] Revert "tmpfs: don't enable large folios if not supported" Lorenzo Stoakes
2026-05-05 10:47   ` Lorenzo Stoakes
2026-05-06  8:58     ` Baolin Wang
2026-05-11 12:03       ` Lorenzo Stoakes
2026-05-11 22:01         ` Andrew Morton
2026-05-12  0:55           ` Baolin Wang
2026-05-12  1:15             ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox