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

- Subsystems: MEMORY MANAGEMENT, MEMORY MANAGEMENT - MIGRATION, THE REST
- Maintainers: Andrew Morton, David Hildenbrand, Linus Torvalds
- Status: REVIEWED · 1 review, 0 by maintainers (Rafael Aquini)
- Reviewed.
- 1 review trailer.
- List: linux-api
- 3 messages, 3 authors
- Page: https://ratatoskr.run/linux-api/2015/07/97568/t

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

- From: Gioh Kim \<hidden\>
- Date: 2015-07-13 08:35:19 
- Message: https://ratatoskr.run/linux-api/2015/07/97568.md

```text
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 
- Message: https://ratatoskr.run/linux-api/2015/07/97998.md

```text
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.

> ---
>   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 
- Message: https://ratatoskr.run/linux-api/2015/07/98009.md

```text


2015-07-27 오후 10:58에 Vlastimil Babka 이(가) 쓴 글:
> 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.
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.

>
>> ---
>>   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
>>
>
>
```
