* [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