2020-05-27 10:07:32

by Joonsoo Kim

[permalink] [raw]
Subject: [PATCH v2 01/12] mm/page_isolation: prefer the node of the source page

From: Joonsoo Kim <[email protected]>

For locality, it's better to migrate the page to the same node
rather than the node of the current caller's cpu.

Acked-by: Roman Gushchin <[email protected]>
Signed-off-by: Joonsoo Kim <[email protected]>
---
mm/page_isolation.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index 2c11a38..7df89bd 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -300,5 +300,7 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,

struct page *alloc_migrate_target(struct page *page, unsigned long private)
{
- return new_page_nodemask(page, numa_node_id(), &node_states[N_MEMORY]);
+ int nid = page_to_nid(page);
+
+ return new_page_nodemask(page, nid, &node_states[N_MEMORY]);
}
--
2.7.4


2020-05-28 15:36:46

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH v2 01/12] mm/page_isolation: prefer the node of the source page

On 5/27/20 8:44 AM, [email protected] wrote:
> From: Joonsoo Kim <[email protected]>
>
> For locality, it's better to migrate the page to the same node
> rather than the node of the current caller's cpu.

Should be, yeah.

> Acked-by: Roman Gushchin <[email protected]>
> Signed-off-by: Joonsoo Kim <[email protected]>

Reviewed-by: Vlastimil Babka <[email protected]>

> ---
> mm/page_isolation.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/mm/page_isolation.c b/mm/page_isolation.c
> index 2c11a38..7df89bd 100644
> --- a/mm/page_isolation.c
> +++ b/mm/page_isolation.c
> @@ -300,5 +300,7 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
>
> struct page *alloc_migrate_target(struct page *page, unsigned long private)
> {
> - return new_page_nodemask(page, numa_node_id(), &node_states[N_MEMORY]);
> + int nid = page_to_nid(page);
> +
> + return new_page_nodemask(page, nid, &node_states[N_MEMORY]);

I wonder why this and others uses node_states[N_MEMORY] and not just NULL. But
maybe that's addressed later.

> }
>

2020-06-09 12:55:32

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH v2 01/12] mm/page_isolation: prefer the node of the source page

On Wed 27-05-20 15:44:52, Joonsoo Kim wrote:
> From: Joonsoo Kim <[email protected]>
>
> For locality, it's better to migrate the page to the same node
> rather than the node of the current caller's cpu.
>
> Acked-by: Roman Gushchin <[email protected]>
> Signed-off-by: Joonsoo Kim <[email protected]>

Acked-by: Michal Hocko <[email protected]>

> ---
> mm/page_isolation.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/mm/page_isolation.c b/mm/page_isolation.c
> index 2c11a38..7df89bd 100644
> --- a/mm/page_isolation.c
> +++ b/mm/page_isolation.c
> @@ -300,5 +300,7 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
>
> struct page *alloc_migrate_target(struct page *page, unsigned long private)
> {
> - return new_page_nodemask(page, numa_node_id(), &node_states[N_MEMORY]);
> + int nid = page_to_nid(page);
> +
> + return new_page_nodemask(page, nid, &node_states[N_MEMORY]);
> }
> --
> 2.7.4

--
Michal Hocko
SUSE Labs