[PATCH] mm/memory_hotplug: Print the correct pfn in do_migrate_range()

Li Zhijian posted 1 patch 2 months ago
mm/memory_hotplug.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] mm/memory_hotplug: Print the correct pfn in do_migrate_range()
Posted by Li Zhijian 2 months ago
The pfn value needs to be retrieved correctly when PageTransHuge(page)
is true. Fix it by replacing the usage of 'pfn' with 'page_to_pfn(page)'
to ensure the correct pfn is printed in warning messages when isolation
fails.

Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
---
 mm/memory_hotplug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 26790c8d5b43..000430406a9e 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1829,7 +1829,7 @@ static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
 
 		} else {
 			if (__ratelimit(&migrate_rs)) {
-				pr_warn("failed to isolate pfn %lx\n", pfn);
+				pr_warn("failed to isolate pfn %lx\n", page_to_pfn(page));
 				dump_page(page, "isolation failed");
 			}
 		}
-- 
2.29.2
Re: [PATCH] mm/memory_hotplug: Print the correct pfn in do_migrate_range()
Posted by Anshuman Khandual 2 months ago

On 9/24/24 15:45, Li Zhijian wrote:
> The pfn value needs to be retrieved correctly when PageTransHuge(page)
 
Where the pfn could have been modified with

pfn = page_to_pfn(head) + compound_nr(head) - 1

So retrieving from page will get the original pfn value ?

> is true. Fix it by replacing the usage of 'pfn' with 'page_to_pfn(page)'
> to ensure the correct pfn is printed in warning messages when isolation
> fails.
> 
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
>  mm/memory_hotplug.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 26790c8d5b43..000430406a9e 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1829,7 +1829,7 @@ static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
>  
>  		} else {
>  			if (__ratelimit(&migrate_rs)) {
> -				pr_warn("failed to isolate pfn %lx\n", pfn);
> +				pr_warn("failed to isolate pfn %lx\n", page_to_pfn(page));
>  				dump_page(page, "isolation failed");
>  			}
>  		}
Re: [PATCH] mm/memory_hotplug: Print the correct pfn in do_migrate_range()
Posted by Zhijian Li (Fujitsu) 2 months ago
Sorry for the late reply. (My company's mail server that enabling the 
DRMAC, seems not to deliver some mails to my inbox, I have to check 
mails in lore)

> On 9/24/24 15:45, Li Zhijian wrote:
> > The pfn value needs to be retrieved correctly when PageTransHuge(page)   
> Where the pfn could have been modified with
> pfn = page_to_pfn(head) + compound_nr(head) - 1
> So retrieving from page will get the original pfn value ?

Yes, that's true.
it should print the actual pfn thatfailed to isolate,\\\ Thanks Zhijian
  

>
>
> > is true. Fix it by replacing the usage of 'pfn' with 'page_to_pfn(page)' > to ensure the correct pfn is printed in warning messages when 
> isolation > fails. > > Signed-off-by: Li Zhijian 
> <lizhijian@fujitsu.com> > --- > mm/memory_hotplug.c | 2 +- > 1 file 
> changed, 1 insertion(+), 1 deletion(-) > > diff --git 
> a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 
> 26790c8d5b43..000430406a9e 100644 > --- a/mm/memory_hotplug.c > +++ 
> b/mm/memory_hotplug.c > @@ -1829,7 +1829,7 @@ static void 
> do_migrate_range(unsigned long start_pfn, unsigned long end_pfn) > > } 
> else { > if (__ratelimit(&migrate_rs)) { > - pr_warn("failed to 
> isolate pfn %lx\n", pfn); > + pr_warn("failed to isolate pfn %lx\n", 
> page_to_pfn(page)); > dump_page(page, "isolation failed"); > } > }

Re: [PATCH] mm/memory_hotplug: Print the correct pfn in do_migrate_range()
Posted by Zhijian Li (Fujitsu) 2 months ago
Well, please ignore this patch, it has been fixed in 6.12 merged windows



On 25/09/2024 16:01, Li, Zhijian/李 智坚 wrote:
> Sorry for the late reply. (My company's mail server that enabling the
> DRMAC, seems not to deliver some mails to my inbox, I have to check
> mails in lore)
> 
>> On 9/24/24 15:45, Li Zhijian wrote:
>>> The pfn value needs to be retrieved correctly when PageTransHuge(page)
>> Where the pfn could have been modified with
>> pfn = page_to_pfn(head) + compound_nr(head) - 1
>> So retrieving from page will get the original pfn value ?
> 
> Yes, that's true.
> it should print the actual pfn thatfailed to isolate,\\\ Thanks Zhijian
>    
> 
>>
>>
>>> is true. Fix it by replacing the usage of 'pfn' with 'page_to_pfn(page)' > to ensure the correct pfn is printed in warning messages when
>> isolation > fails. > > Signed-off-by: Li Zhijian
>> <lizhijian@fujitsu.com> > --- > mm/memory_hotplug.c | 2 +- > 1 file
>> changed, 1 insertion(+), 1 deletion(-) > > diff --git
>> a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index
>> 26790c8d5b43..000430406a9e 100644 > --- a/mm/memory_hotplug.c > +++
>> b/mm/memory_hotplug.c > @@ -1829,7 +1829,7 @@ static void
>> do_migrate_range(unsigned long start_pfn, unsigned long end_pfn) > > }
>> else { > if (__ratelimit(&migrate_rs)) { > - pr_warn("failed to
>> isolate pfn %lx\n", pfn); > + pr_warn("failed to isolate pfn %lx\n",
>> page_to_pfn(page)); > dump_page(page, "isolation failed"); > } > }
>