All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Luiz Capitulino <luizcap@redhat.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	baolin.wang@linux.alibaba.com, ziy@nvidia.com,
	lance.yang@linux.dev
Cc: corbet@lwn.net, tsbogend@alpha.franken.de, maddy@linux.ibm.com,
	mpe@ellerman.id.au, agordeev@linux.ibm.com,
	gerald.schaefer@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, x86@kernel.org, tglx@kernel.org,
	mingo@redhat.com, bp@alien8.de, hughd@google.com,
	dave.hansen@linux.intel.com, djbw@kernel.org,
	vishal.l.verma@intel.com, dave.jiang@intel.com,
	akpm@linux-foundation.org, yintirui@huawei.com, dev.jain@arm.com,
	usama.arif@linux.dev
Subject: Re: [PATCH v8 07/14] mm: shmem: allow THP support determination at folio allocation time
Date: Fri, 2 Oct 2026 21:23:54 +0200	[thread overview]
Message-ID: <b63f546b-ee92-46c3-85bd-bc64dbaae367@kernel.org> (raw)
In-Reply-To: <f74ada750d1910f8ea7e55955eb0c330747b93d4.1789695931.git.luizcap@redhat.com>

On 9/18/26 03:45, Luiz Capitulino wrote:
> In order to enable THP support in shmem today, besides the user
> configuration required, the CPU must support PMD-sized pages. This
> is the case because of the following has_transparent_hugepage()
> usage:
> 
> - shmem_parse_one() and shmem_parse_huge(): Check if THP is built-in and
>   if the CPU supports PMD-sized pages
> 
> - shmem_init(): Since the CONFIG_TRANSPARENT_HUGEPAGE guard is outside
>   the code block calling has_transparent_hugepage(), the
>   has_transparent_hugepage() call is exclusively checking if the CPU
>   supports PMD-sized pages
> 
> While it's necessary to check if CONFIG_TRANSPARENT_HUGEPAGE is enabled
> in all cases, shmem can determine THP size support at folio allocation
> time. Therefore, drop the has_transparent_hugepage() usage listed above
> while keeping the CONFIG_TRANSPARENT_HUGEPAGE checks.
> 
> Additionally, we need to check if PMD size order is supported in
> shmem_getattr(). Use pgtable_has_pmd_leaves() for that.
> 
> Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
> Signed-off-by: Luiz Capitulino <luizcap@redhat.com>
> ---
>  mm/shmem.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 776dff8a848e..930657d05375 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -690,7 +690,7 @@ static int shmem_parse_huge(const char *str)
>  	else
>  		return -EINVAL;
>  
> -	if (!has_transparent_hugepage() &&
> +	if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
>  	    huge != SHMEM_HUGE_NEVER && huge != SHMEM_HUGE_DENY)
>  		return -EINVAL;
>  
> @@ -1524,6 +1524,8 @@ static int shmem_getattr(struct mnt_idmap *idmap,
>  	generic_fillattr(idmap, request_mask, inode, stat);
>  
>  	orders = shmem_huge_global_enabled(inode, 0, 0, false, NULL, 0);

I'm curious: why is that not handled inside shmem_huge_global_enabled() ? If PMD
order is impossible (well, okay, it is possible, but we simply cannot map these
things through PMDs), I would expect that we never list them as "enabled".

(while shmem could allocate PMD folios, it would have to map them always through
PTEs. I think this would be possible through some changes, but we can defer that
to some future work).

-- 
Cheers,

David


  parent reply	other threads:[~2026-10-02 19:24 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18  1:45 [PATCH v8 00/14] mm: thp: always enable mTHP support Luiz Capitulino
2026-09-18  1:45 ` [PATCH v8 01/14] docs: tmpfs: remove implementation detail reference Luiz Capitulino
2026-09-18  1:45 ` [PATCH v8 02/14] mm: shmem: shmem_getattr(): set blksize to highest supported THP order Luiz Capitulino
2026-10-02 19:11   ` David Hildenbrand (Arm)
2026-09-18  1:45 ` [PATCH v8 03/14] mm: introduce pgtable_has_pmd_leaves() Luiz Capitulino
2026-09-22  2:07   ` Zi Yan
2026-10-02 19:13   ` David Hildenbrand (Arm)
2026-09-18  1:45 ` [PATCH v8 04/14] drivers: dax: use pgtable_has_pmd_leaves() Luiz Capitulino
2026-09-22  2:08   ` Zi Yan
2026-10-02 19:15   ` David Hildenbrand (Arm)
2026-10-03 14:55     ` Luiz Capitulino
2026-09-18  1:45 ` [PATCH v8 05/14] drivers: nvdimm: " Luiz Capitulino
2026-10-02 19:18   ` David Hildenbrand (Arm)
2026-09-18  1:45 ` [PATCH v8 06/14] mm: debug_vm_pgtable: " Luiz Capitulino
2026-10-02 19:19   ` David Hildenbrand (Arm)
2026-10-03 14:55     ` Luiz Capitulino
2026-09-18  1:45 ` [PATCH v8 07/14] mm: shmem: allow THP support determination at folio allocation time Luiz Capitulino
2026-09-22  2:20   ` Zi Yan
2026-09-23  1:37     ` Luiz Capitulino
2026-10-02 19:23   ` David Hildenbrand (Arm) [this message]
2026-10-03 15:09     ` Luiz Capitulino
2026-10-08  1:50       ` Baolin Wang
2026-10-08  2:14         ` Luiz Capitulino
2026-09-18  1:45 ` [PATCH v8 08/14] s390: move has_transparent_hugepage() out of THP guard Luiz Capitulino
2026-09-22  2:21   ` Zi Yan
2026-10-02 19:24   ` David Hildenbrand (Arm)
2026-09-18  1:45 ` [PATCH v8 09/14] powerpc: " Luiz Capitulino
2026-10-02 19:28   ` David Hildenbrand (Arm)
2026-10-03 15:44     ` Luiz Capitulino
2026-10-05  4:52       ` Christophe Leroy (CS GROUP)
2026-10-05 20:40         ` Luiz Capitulino
2026-10-06  4:48           ` Christophe Leroy (CS GROUP)
2026-09-18  1:45 ` [PATCH v8 10/14] mips: " Luiz Capitulino
2026-10-02 19:29   ` David Hildenbrand (Arm)
2026-09-18  1:45 ` [PATCH v8 11/14] x86: " Luiz Capitulino
2026-09-18  1:45 ` [PATCH v8 12/14] treewide: introduce arch_has_pmd_leaves() Luiz Capitulino
2026-09-22  2:26   ` Zi Yan
2026-09-18  1:45 ` [PATCH v8 13/14] mm: replace thp_disabled_by_hw() with pgtable_has_pmd_leaves() Luiz Capitulino
2026-10-02 19:32   ` David Hildenbrand (Arm)
2026-09-18  1:45 ` [PATCH v8 14/14] mm: thp: always enable mTHP support Luiz Capitulino
2026-09-18  9:01   ` Baolin Wang
2026-09-21 10:29   ` Usama Arif
2026-09-22  2:06     ` Luiz Capitulino
2026-10-03  3:13   ` Lance Yang
2026-10-03 15:50     ` Luiz Capitulino
2026-10-08  2:07   ` Baolin Wang
2026-10-08 12:08     ` Luiz Capitulino
2026-09-18 10:37 ` [PATCH v8 00/14] " Usama Arif
2026-09-18 14:01   ` Luiz Capitulino
2026-09-18 20:23     ` David Hildenbrand (Arm)
2026-09-21 10:36     ` Usama Arif
2026-09-22  2:11       ` Luiz Capitulino

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=b63f546b-ee92-46c3-85bd-bc64dbaae367@kernel.org \
    --to=david@kernel.org \
    --cc=agordeev@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=bp@alien8.de \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dev.jain@arm.com \
    --cc=djbw@kernel.org \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=hughd@google.com \
    --cc=lance.yang@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luizcap@redhat.com \
    --cc=maddy@linux.ibm.com \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=tglx@kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=usama.arif@linux.dev \
    --cc=vishal.l.verma@intel.com \
    --cc=x86@kernel.org \
    --cc=yintirui@huawei.com \
    --cc=ziy@nvidia.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.