Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mm/page_vma_mapped: guard check_pmd() with CONFIG_TRANSPARENT_HUGEPAGE
@ 2026-06-24  8:23 Wei Yang
  2026-06-24 20:14 ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Wei Yang @ 2026-06-24  8:23 UTC (permalink / raw)
  To: akpm, david, ljs, riel, liam, vbabka, harry, jannh, willy
  Cc: linux-mm, linux-kernel, lance.yang, Wei Yang

The kernel test robot reported a build failure on the parisc architecture
when expanding HPAGE_PMD_NR in check_pmd().

   mm/page_vma_mapped.c:142:13: note: in expansion of macro 'HPAGE_PMD_NR'
     if ((pfn + HPAGE_PMD_NR - 1) < pvmw->pfn)
                ^~~~~~~~~~~~

The config [1] in report link shows neither TRANSPARENT_HUGEPAGE nor
HUGETLB_PAGE is defined. Then trigger the BUILD_BUG.

Fix it by define check_pmd() under CONFIG_TRANSPARENT_HUGEPAGE.

[1]: https://download.01.org/0day-ci/archive/20260624/202606240042.ffPsEXVc-lkp@intel.com/config

Fixes: 2aff7a4755be ("mm: Convert page_vma_mapped_walk to work on PFNs")
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202606240042.ffPsEXVc-lkp@intel.com/
---
 mm/page_vma_mapped.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c
index 17dff8aab9f9..4aac94d9e8a9 100644
--- a/mm/page_vma_mapped.c
+++ b/mm/page_vma_mapped.c
@@ -136,6 +136,7 @@ static bool check_pte(struct page_vma_mapped_walk *pvmw, unsigned long pte_nr)
 	return true;
 }
 
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
 /* Returns true if the two ranges overlap.  Careful to not overflow. */
 static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
 {
@@ -145,6 +146,12 @@ static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
 		return false;
 	return true;
 }
+#else
+static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
+{
+	return false;
+}
+#endif
 
 static void step_forward(struct page_vma_mapped_walk *pvmw, unsigned long size)
 {
-- 
2.34.1



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

* Re: [PATCH] mm/page_vma_mapped: guard check_pmd() with CONFIG_TRANSPARENT_HUGEPAGE
  2026-06-24  8:23 [PATCH] mm/page_vma_mapped: guard check_pmd() with CONFIG_TRANSPARENT_HUGEPAGE Wei Yang
@ 2026-06-24 20:14 ` Andrew Morton
  2026-06-25  3:46   ` Wei Yang
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2026-06-24 20:14 UTC (permalink / raw)
  To: Wei Yang
  Cc: david, ljs, riel, liam, vbabka, harry, jannh, willy, linux-mm,
	linux-kernel, lance.yang

On Wed, 24 Jun 2026 08:23:59 +0000 Wei Yang <richard.weiyang@gmail.com> wrote:

> The kernel test robot reported a build failure on the parisc architecture
> when expanding HPAGE_PMD_NR in check_pmd().
> 
>    mm/page_vma_mapped.c:142:13: note: in expansion of macro 'HPAGE_PMD_NR'
>      if ((pfn + HPAGE_PMD_NR - 1) < pvmw->pfn)
>                 ^~~~~~~~~~~~
> 
> The config [1] in report link shows neither TRANSPARENT_HUGEPAGE nor
> HUGETLB_PAGE is defined. Then trigger the BUILD_BUG.
> 
> Fix it by define check_pmd() under CONFIG_TRANSPARENT_HUGEPAGE.

hm,

#ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES
#define HPAGE_PMD_SHIFT PMD_SHIFT
#define HPAGE_PUD_SHIFT PUD_SHIFT
#else
#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; })
#define HPAGE_PUD_SHIFT ({ BUILD_BUG(); 0; })
#endif

> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
>  /* Returns true if the two ranges overlap.  Careful to not overflow. */
>  static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
>  {
> @@ -145,6 +146,12 @@ static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
>  		return false;
>  	return true;
>  }
> +#else
> +static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
> +{
> +	return false;
> +}
> +#endif

I'll leave it to others to decide if this is the most appropriate fix.

Sashiko had an off-topic complaint about the surrounding code:
	https://lore.kernel.org/oe-kbuild-all/202606240042.ffPsEXVc-lkp@intel.com/



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

* Re: [PATCH] mm/page_vma_mapped: guard check_pmd() with CONFIG_TRANSPARENT_HUGEPAGE
  2026-06-24 20:14 ` Andrew Morton
@ 2026-06-25  3:46   ` Wei Yang
  2026-06-25  4:59     ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Wei Yang @ 2026-06-25  3:46 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Wei Yang, david, ljs, riel, liam, vbabka, harry, jannh, willy,
	linux-mm, linux-kernel, lance.yang

On Wed, Jun 24, 2026 at 01:14:57PM -0700, Andrew Morton wrote:
>On Wed, 24 Jun 2026 08:23:59 +0000 Wei Yang <richard.weiyang@gmail.com> wrote:
>
>> The kernel test robot reported a build failure on the parisc architecture
>> when expanding HPAGE_PMD_NR in check_pmd().
>> 
>>    mm/page_vma_mapped.c:142:13: note: in expansion of macro 'HPAGE_PMD_NR'
>>      if ((pfn + HPAGE_PMD_NR - 1) < pvmw->pfn)
>>                 ^~~~~~~~~~~~
>> 
>> The config [1] in report link shows neither TRANSPARENT_HUGEPAGE nor
>> HUGETLB_PAGE is defined. Then trigger the BUILD_BUG.
>> 
>> Fix it by define check_pmd() under CONFIG_TRANSPARENT_HUGEPAGE.
>
>hm,
>
>#ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES
>#define HPAGE_PMD_SHIFT PMD_SHIFT
>#define HPAGE_PUD_SHIFT PUD_SHIFT
>#else
>#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; })
>#define HPAGE_PUD_SHIFT ({ BUILD_BUG(); 0; })
>#endif
>
>> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
>>  /* Returns true if the two ranges overlap.  Careful to not overflow. */
>>  static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
>>  {
>> @@ -145,6 +146,12 @@ static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
>>  		return false;
>>  	return true;
>>  }
>> +#else
>> +static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)
>> +{
>> +	return false;
>> +}
>> +#endif
>
>I'll leave it to others to decide if this is the most appropriate fix.
>
>Sashiko had an off-topic complaint about the surrounding code:
>	https://lore.kernel.org/oe-kbuild-all/202606240042.ffPsEXVc-lkp@intel.com/

I see this robot reply, but not see the Sashiko comment.

How can I view Sashiko's commnet?

-- 
Wei Yang
Help you, Help me


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

* Re: [PATCH] mm/page_vma_mapped: guard check_pmd() with CONFIG_TRANSPARENT_HUGEPAGE
  2026-06-25  3:46   ` Wei Yang
@ 2026-06-25  4:59     ` Andrew Morton
  2026-06-25  6:41       ` Wei Yang
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2026-06-25  4:59 UTC (permalink / raw)
  To: Wei Yang
  Cc: david, ljs, riel, liam, vbabka, harry, jannh, willy, linux-mm,
	linux-kernel, lance.yang

On Thu, 25 Jun 2026 03:46:29 +0000 Wei Yang <richard.weiyang@gmail.com> wrote:

> >Sashiko had an off-topic complaint about the surrounding code:
> >	https://lore.kernel.org/oe-kbuild-all/202606240042.ffPsEXVc-lkp@intel.com/
> 
> I see this robot reply, but not see the Sashiko comment.
> 
> How can I view Sashiko's commnet?

oop sorry.

You can go to https://sashiko.dev/ and search for the email subject. 

Or append your Message-ID to "https://sashiko.dev/#/patchset":

	https://sashiko.dev/#/patchset/20260624082359.2869-1-richard.weiyang@gmail.com




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

* Re: [PATCH] mm/page_vma_mapped: guard check_pmd() with CONFIG_TRANSPARENT_HUGEPAGE
  2026-06-25  4:59     ` Andrew Morton
@ 2026-06-25  6:41       ` Wei Yang
  0 siblings, 0 replies; 5+ messages in thread
From: Wei Yang @ 2026-06-25  6:41 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Wei Yang, david, ljs, riel, liam, vbabka, harry, jannh, willy,
	linux-mm, linux-kernel, lance.yang, balbirs

+cc Balbir

On Wed, Jun 24, 2026 at 09:59:43PM -0700, Andrew Morton wrote:
>On Thu, 25 Jun 2026 03:46:29 +0000 Wei Yang <richard.weiyang@gmail.com> wrote:
>
>> >Sashiko had an off-topic complaint about the surrounding code:
>> >	https://lore.kernel.org/oe-kbuild-all/202606240042.ffPsEXVc-lkp@intel.com/
>> 
>> I see this robot reply, but not see the Sashiko comment.
>> 
>> How can I view Sashiko's commnet?
>
>oop sorry.
>
>You can go to https://sashiko.dev/ and search for the email subject. 
>
>Or append your Message-ID to "https://sashiko.dev/#/patchset":
>
>	https://sashiko.dev/#/patchset/20260624082359.2869-1-richard.weiyang@gmail.com
>

Got it, thansk

This one mentioned two things:

  a. page_vma_mapped_walk() return without check
  b. whether __split_huge_pmd_locked() would split device-private pmd

For a., it is being fixing at [1].

For b., to be honest I am not 100% for sure. If a device-private pmd could be
file backed, then this looks like a bug.

Balbir,

Would you mind taking a look at the second comment raised by Sashiko?

[1]: https://lore.kernel.org/linux-mm/20260624065353.1622-1-richard.weiyang@gmail.com/

-- 
Wei Yang
Help you, Help me


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

end of thread, other threads:[~2026-06-25  6:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-24  8:23 [PATCH] mm/page_vma_mapped: guard check_pmd() with CONFIG_TRANSPARENT_HUGEPAGE Wei Yang
2026-06-24 20:14 ` Andrew Morton
2026-06-25  3:46   ` Wei Yang
2026-06-25  4:59     ` Andrew Morton
2026-06-25  6:41       ` Wei Yang

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