Return value mechanism of do_migrate_range() is not very simple, while
no caller of the function checks the return value. Make the function
return nothing to be more simple.
Suggested-by: David Hildenbrand <[email protected]>
Signed-off-by: SeongJae Park <[email protected]>
---
mm/memory_hotplug.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index bcb0dc41c2f2..6c615ba1a5c7 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1620,8 +1620,7 @@ static int scan_movable_pages(unsigned long start, unsigned long end,
return 0;
}
-static int
-do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
+static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
{
unsigned long pfn;
struct page *page, *head;
@@ -1721,8 +1720,6 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
putback_movable_pages(&source);
}
}
-
- return ret;
}
static int __init cmdline_parse_movable_node(char *p)
--
2.25.1
On 16.02.23 00:02, SeongJae Park wrote:
> Return value mechanism of do_migrate_range() is not very simple, while
> no caller of the function checks the return value. Make the function
> return nothing to be more simple.
>
> Suggested-by: David Hildenbrand <[email protected]>
> Signed-off-by: SeongJae Park <[email protected]>
> ---
> mm/memory_hotplug.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index bcb0dc41c2f2..6c615ba1a5c7 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1620,8 +1620,7 @@ static int scan_movable_pages(unsigned long start, unsigned long end,
> return 0;
> }
>
> -static int
> -do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> +static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> {
> unsigned long pfn;
> struct page *page, *head;
> @@ -1721,8 +1720,6 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> putback_movable_pages(&source);
> }
> }
> -
> - return ret;
> }
I think this patch should also stop initializing ret = 0 inside that
function.
With that
Acked-by: David Hildenbrand <[email protected]>
--
Thanks,
David / dhildenb
On 2/16/2023 7:02 AM, SeongJae Park wrote:
> Return value mechanism of do_migrate_range() is not very simple, while
> no caller of the function checks the return value. Make the function
> return nothing to be more simple.
>
> Suggested-by: David Hildenbrand <[email protected]>
> Signed-off-by: SeongJae Park <[email protected]>
> ---
> mm/memory_hotplug.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index bcb0dc41c2f2..6c615ba1a5c7 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1620,8 +1620,7 @@ static int scan_movable_pages(unsigned long start, unsigned long end,
> return 0;
> }
>
> -static int
> -do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> +static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> {
> unsigned long pfn;
> struct page *page, *head;
> @@ -1721,8 +1720,6 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> putback_movable_pages(&source);
> }
> }
> -
> - return ret;
Nit: while we are at it, can we also remove the "TODO" comment in
offline_pages()?
ret = scan_movable_pages(pfn, end_pfn, &pfn);
if (!ret) {
/*
* TODO: fatal migration failures should bail
* out
*/
do_migrate_range(pfn, end_pfn);
}
With David's comments:
Reviewed-by: Baolin Wang <[email protected]>
Hi David,
On Thu, 16 Feb 2023 10:46:59 +0100 David Hildenbrand <[email protected]> wrote:
> On 16.02.23 00:02, SeongJae Park wrote:
> > Return value mechanism of do_migrate_range() is not very simple, while
> > no caller of the function checks the return value. Make the function
> > return nothing to be more simple.
> >
> > Suggested-by: David Hildenbrand <[email protected]>
> > Signed-off-by: SeongJae Park <[email protected]>
> > ---
> > mm/memory_hotplug.c | 5 +----
> > 1 file changed, 1 insertion(+), 4 deletions(-)
> >
> > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> > index bcb0dc41c2f2..6c615ba1a5c7 100644
> > --- a/mm/memory_hotplug.c
> > +++ b/mm/memory_hotplug.c
> > @@ -1620,8 +1620,7 @@ static int scan_movable_pages(unsigned long start, unsigned long end,
> > return 0;
> > }
> >
> > -static int
> > -do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> > +static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> > {
> > unsigned long pfn;
> > struct page *page, *head;
> > @@ -1721,8 +1720,6 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> > putback_movable_pages(&source);
> > }
> > }
> > -
> > - return ret;
> > }
>
> I think this patch should also stop initializing ret = 0 inside that
> function.
The second patch does it, and I read your reply to the patch asking squashing
it in this one. I will send the new version soon.
>
> With that
>
> Acked-by: David Hildenbrand <[email protected]>
Thanks you.
Thanks,
SJ
>
> --
> Thanks,
>
> David / dhildenb
>
>
Hi Baolin,
On Thu, 16 Feb 2023 18:53:34 +0800 Baolin Wang <[email protected]> wrote:
>
>
> On 2/16/2023 7:02 AM, SeongJae Park wrote:
> > Return value mechanism of do_migrate_range() is not very simple, while
> > no caller of the function checks the return value. Make the function
> > return nothing to be more simple.
> >
> > Suggested-by: David Hildenbrand <[email protected]>
> > Signed-off-by: SeongJae Park <[email protected]>
> > ---
> > mm/memory_hotplug.c | 5 +----
> > 1 file changed, 1 insertion(+), 4 deletions(-)
> >
> > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> > index bcb0dc41c2f2..6c615ba1a5c7 100644
> > --- a/mm/memory_hotplug.c
> > +++ b/mm/memory_hotplug.c
> > @@ -1620,8 +1620,7 @@ static int scan_movable_pages(unsigned long start, unsigned long end,
> > return 0;
> > }
> >
> > -static int
> > -do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> > +static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> > {
> > unsigned long pfn;
> > struct page *page, *head;
> > @@ -1721,8 +1720,6 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
> > putback_movable_pages(&source);
> > }
> > }
> > -
> > - return ret;
>
> Nit: while we are at it, can we also remove the "TODO" comment in
> offline_pages()?
>
> ret = scan_movable_pages(pfn, end_pfn, &pfn);
> if (!ret) {
> /*
> * TODO: fatal migration failures should bail
> * out
> */
> do_migrate_range(pfn, end_pfn);
> }
>
> With David's comments:
> Reviewed-by: Baolin Wang <[email protected]>
As David mentioned we're just still unclear what issues are fatal[1], I was
thinking we didn't forgive the future work, so left the comment. If anyone has
different opinion or I'm getting something wrong, please let me know.
[1] https://lore.kernel.org/linux-mm/[email protected]/
Thanks,
SJ