lkml.org 
[lkml]   [2020]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 1/8] mm/migrate.c: skip node check if done in last round
Date
Before move page to target node, we would check if the node id is valid.
In case we would try to move pages to the same target node, it is not
necessary to do the check each time.

This patch tries to skip the check if the node has been checked.

Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
---
mm/migrate.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/mm/migrate.c b/mm/migrate.c
index 430fdccc733e..ba7cf4fa43a0 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1612,15 +1612,18 @@ static int do_pages_move(struct mm_struct *mm, nodemask_t task_nodes,
goto out_flush;
addr = (unsigned long)untagged_addr(p);

- err = -ENODEV;
- if (node < 0 || node >= MAX_NUMNODES)
- goto out_flush;
- if (!node_state(node, N_MEMORY))
- goto out_flush;
+ /* Check node if it is not checked. */
+ if (current_node == NUMA_NO_NODE || node != current_node) {
+ err = -ENODEV;
+ if (node < 0 || node >= MAX_NUMNODES)
+ goto out_flush;
+ if (!node_state(node, N_MEMORY))
+ goto out_flush;

- err = -EACCES;
- if (!node_isset(node, task_nodes))
- goto out_flush;
+ err = -EACCES;
+ if (!node_isset(node, task_nodes))
+ goto out_flush;
+ }

if (current_node == NUMA_NO_NODE) {
current_node = node;
--
2.17.1
\
 
 \ /
  Last update: 2020-01-19 04:08    [W:0.169 / U:1.144 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site