[PATCH 4/4] mm: remove direct calling of migration

Subsystems: memory management, memory management - memory policy and migration, the rest

STALE4029d REVIEWED: 1 (0M)

1 review trailer.

3 messages, 3 authors, 2015-07-28 · open the first message on its own page

[PATCH 4/4] mm: remove direct calling of migration

From: Gioh Kim <hidden>
Date: 2015-07-13 08:35:19

From: Gioh Kim <redacted>

Migration is completely generalized so that migrating mobile page
is processed with lru-pages in move_to_new_page.

Signed-off-by: Gioh Kim <redacted>
Acked-by: Rafael Aquini <redacted>
---
 mm/migrate.c | 15 ---------------
 1 file changed, 15 deletions(-)
diff --git a/mm/migrate.c b/mm/migrate.c
index 53f0081d..e6644ac 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -844,21 +844,6 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
 		}
 	}
 
-	if (unlikely(mobile_page(page))) {
-		/*
-		 * A mobile page does not need any special attention from
-		 * physical to virtual reverse mapping procedures.
-		 * Skip any attempt to unmap PTEs or to remap swap cache,
-		 * in order to avoid burning cycles at rmap level, and perform
-		 * the page migration right away (proteced by page lock).
-		 */
-		lock_page(newpage);
-		rc = page->mapping->a_ops->migratepage(page->mapping,
-						       newpage, page, mode);
-		unlock_page(newpage);
-		goto out_unlock;
-	}
-
 	/*
 	 * Corner case handling:
 	 * 1. When a new swap-cache page is read into, it is added to the LRU
-- 
2.1.4

Re: [PATCH 4/4] mm: remove direct calling of migration

From: Vlastimil Babka <hidden>
Date: 2015-07-27 13:58:09

On 07/13/2015 10:35 AM, Gioh Kim wrote:
From: Gioh Kim <redacted>

Migration is completely generalized so that migrating mobile page
is processed with lru-pages in move_to_new_page.

Signed-off-by: Gioh Kim <redacted>
Acked-by: Rafael Aquini <redacted>
Why not just fold this to Patch 3? You already modify this hunk there, 
and prior to patch 3, the hunk was balloon-pages specific. You made it 
look generic only to remove it, which is unneeded code churn and I don't 
think it adds anything wrt e.g. bisectability.
quoted hunk
---
  mm/migrate.c | 15 ---------------
  1 file changed, 15 deletions(-)
diff --git a/mm/migrate.c b/mm/migrate.c
index 53f0081d..e6644ac 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -844,21 +844,6 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
  		}
  	}

-	if (unlikely(mobile_page(page))) {
-		/*
-		 * A mobile page does not need any special attention from
-		 * physical to virtual reverse mapping procedures.
-		 * Skip any attempt to unmap PTEs or to remap swap cache,
-		 * in order to avoid burning cycles at rmap level, and perform
-		 * the page migration right away (proteced by page lock).
-		 */
-		lock_page(newpage);
-		rc = page->mapping->a_ops->migratepage(page->mapping,
-						       newpage, page, mode);
-		unlock_page(newpage);
-		goto out_unlock;
-	}
-
  	/*
  	 * Corner case handling:
  	 * 1. When a new swap-cache page is read into, it is added to the LRU
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

Re: [PATCH 4/4] mm: remove direct calling of migration

From: Gioh Kim <hidden>
Date: 2015-07-28 00:26:18


2015-07-27 오후 10:58에 Vlastimil Babka 이(가) 쓴 글:
On 07/13/2015 10:35 AM, Gioh Kim wrote:
quoted
From: Gioh Kim <redacted>

Migration is completely generalized so that migrating mobile page
is processed with lru-pages in move_to_new_page.

Signed-off-by: Gioh Kim <redacted>
Acked-by: Rafael Aquini <redacted>
Why not just fold this to Patch 3? You already modify this hunk there, and prior to patch 3, the hunk was balloon-pages specific. You made it look generic only to remove it, which is unneeded code churn and I don't think it adds anything wrt e.g. bisectability.
Yes, you have a point.
I'll be merged into 3/4 at next spin.

I wanted to show the process how migration is generalized with this patch.
On second thought it is not necessary.
quoted
---
  mm/migrate.c | 15 ---------------
  1 file changed, 15 deletions(-)
diff --git a/mm/migrate.c b/mm/migrate.c
index 53f0081d..e6644ac 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -844,21 +844,6 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
          }
      }

-    if (unlikely(mobile_page(page))) {
-        /*
-         * A mobile page does not need any special attention from
-         * physical to virtual reverse mapping procedures.
-         * Skip any attempt to unmap PTEs or to remap swap cache,
-         * in order to avoid burning cycles at rmap level, and perform
-         * the page migration right away (proteced by page lock).
-         */
-        lock_page(newpage);
-        rc = page->mapping->a_ops->migratepage(page->mapping,
-                               newpage, page, mode);
-        unlock_page(newpage);
-        goto out_unlock;
-    }
-
      /*
       * Corner case handling:
       * 1. When a new swap-cache page is read into, it is added to the LRU
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help