diff mbox series

[PATCHv2] mm/migrate: clean up useless code in migrate_vma_collect_pmd()

Message ID 1565167272-21453-1-git-send-email-kernelfans@gmail.com (mailing list archive)
State New, archived
Headers show
Series [PATCHv2] mm/migrate: clean up useless code in migrate_vma_collect_pmd() | expand

Commit Message

Pingfan Liu Aug. 7, 2019, 8:41 a.m. UTC
Clean up useless 'pfn' variable.

Signed-off-by: Pingfan Liu <kernelfans@gmail.com>
Cc: "Jérôme Glisse" <jglisse@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Jan Kara <jack@suse.cz>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Matthew Wilcox <willy@infradead.org>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
 mm/migrate.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

Comments

Ralph Campbell Aug. 14, 2019, 11:11 p.m. UTC | #1
On 8/7/19 1:41 AM, Pingfan Liu wrote:
> Clean up useless 'pfn' variable.
> 
> Signed-off-by: Pingfan Liu <kernelfans@gmail.com>
> Cc: "Jérôme Glisse" <jglisse@redhat.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Mel Gorman <mgorman@techsingularity.net>
> Cc: Jan Kara <jack@suse.cz>
> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Cc: Michal Hocko <mhocko@suse.com>
> Cc: Mike Kravetz <mike.kravetz@oracle.com>
> Cc: Andrea Arcangeli <aarcange@redhat.com>
> Cc: Matthew Wilcox <willy@infradead.org>
> To: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
> ---
>   mm/migrate.c | 9 +++------
>   1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 8992741..d483a55 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -2225,17 +2225,15 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>   		pte_t pte;
>   
>   		pte = *ptep;
> -		pfn = pte_pfn(pte);
>   
>   		if (pte_none(pte)) {
>   			mpfn = MIGRATE_PFN_MIGRATE;
>   			migrate->cpages++;
> -			pfn = 0;
>   			goto next;
>   		}
>   
>   		if (!pte_present(pte)) {
> -			mpfn = pfn = 0;
> +			mpfn = 0;
>   
>   			/*
>   			 * Only care about unaddressable device page special
> @@ -2252,10 +2250,10 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>   			if (is_write_device_private_entry(entry))
>   				mpfn |= MIGRATE_PFN_WRITE;
>   		} else {
> +			pfn = pte_pfn(pte);
>   			if (is_zero_pfn(pfn)) {
>   				mpfn = MIGRATE_PFN_MIGRATE;
>   				migrate->cpages++;
> -				pfn = 0;
>   				goto next;
>   			}
>   			page = vm_normal_page(migrate->vma, addr, pte);
> @@ -2265,10 +2263,9 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>   
>   		/* FIXME support THP */
>   		if (!page || !page->mapping || PageTransCompound(page)) {
> -			mpfn = pfn = 0;
> +			mpfn = 0;
>   			goto next;
>   		}
> -		pfn = page_to_pfn(page);
>   
>   		/*
>   		 * By getting a reference on the page we pin it and that blocks
> 

Thanks, I was planning to do this too.
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
Jerome Glisse Aug. 15, 2019, 5:19 p.m. UTC | #2
On Wed, Aug 07, 2019 at 04:41:12PM +0800, Pingfan Liu wrote:
> Clean up useless 'pfn' variable.

NAK there is a bug see below:

> 
> Signed-off-by: Pingfan Liu <kernelfans@gmail.com>
> Cc: "Jérôme Glisse" <jglisse@redhat.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Mel Gorman <mgorman@techsingularity.net>
> Cc: Jan Kara <jack@suse.cz>
> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Cc: Michal Hocko <mhocko@suse.com>
> Cc: Mike Kravetz <mike.kravetz@oracle.com>
> Cc: Andrea Arcangeli <aarcange@redhat.com>
> Cc: Matthew Wilcox <willy@infradead.org>
> To: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  mm/migrate.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 8992741..d483a55 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -2225,17 +2225,15 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  		pte_t pte;
>  
>  		pte = *ptep;
> -		pfn = pte_pfn(pte);
>  
>  		if (pte_none(pte)) {
>  			mpfn = MIGRATE_PFN_MIGRATE;
>  			migrate->cpages++;
> -			pfn = 0;
>  			goto next;
>  		}
>  
>  		if (!pte_present(pte)) {
> -			mpfn = pfn = 0;
> +			mpfn = 0;
>  
>  			/*
>  			 * Only care about unaddressable device page special
> @@ -2252,10 +2250,10 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  			if (is_write_device_private_entry(entry))
>  				mpfn |= MIGRATE_PFN_WRITE;
>  		} else {
> +			pfn = pte_pfn(pte);
>  			if (is_zero_pfn(pfn)) {
>  				mpfn = MIGRATE_PFN_MIGRATE;
>  				migrate->cpages++;
> -				pfn = 0;
>  				goto next;
>  			}
>  			page = vm_normal_page(migrate->vma, addr, pte);
> @@ -2265,10 +2263,9 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  
>  		/* FIXME support THP */
>  		if (!page || !page->mapping || PageTransCompound(page)) {
> -			mpfn = pfn = 0;
> +			mpfn = 0;
>  			goto next;
>  		}
> -		pfn = page_to_pfn(page);

You can not remove that one ! Otherwise it will break the device
private case.
Ralph Campbell Aug. 15, 2019, 7:23 p.m. UTC | #3
On 8/15/19 10:19 AM, Jerome Glisse wrote:
> On Wed, Aug 07, 2019 at 04:41:12PM +0800, Pingfan Liu wrote:
>> Clean up useless 'pfn' variable.
> 
> NAK there is a bug see below:
> 
>>
>> Signed-off-by: Pingfan Liu <kernelfans@gmail.com>
>> Cc: "Jérôme Glisse" <jglisse@redhat.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Mel Gorman <mgorman@techsingularity.net>
>> Cc: Jan Kara <jack@suse.cz>
>> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
>> Cc: Michal Hocko <mhocko@suse.com>
>> Cc: Mike Kravetz <mike.kravetz@oracle.com>
>> Cc: Andrea Arcangeli <aarcange@redhat.com>
>> Cc: Matthew Wilcox <willy@infradead.org>
>> To: linux-mm@kvack.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>>   mm/migrate.c | 9 +++------
>>   1 file changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/mm/migrate.c b/mm/migrate.c
>> index 8992741..d483a55 100644
>> --- a/mm/migrate.c
>> +++ b/mm/migrate.c
>> @@ -2225,17 +2225,15 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>>   		pte_t pte;
>>   
>>   		pte = *ptep;
>> -		pfn = pte_pfn(pte);
>>   
>>   		if (pte_none(pte)) {
>>   			mpfn = MIGRATE_PFN_MIGRATE;
>>   			migrate->cpages++;
>> -			pfn = 0;
>>   			goto next;
>>   		}
>>   
>>   		if (!pte_present(pte)) {
>> -			mpfn = pfn = 0;
>> +			mpfn = 0;
>>   
>>   			/*
>>   			 * Only care about unaddressable device page special
>> @@ -2252,10 +2250,10 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>>   			if (is_write_device_private_entry(entry))
>>   				mpfn |= MIGRATE_PFN_WRITE;
>>   		} else {
>> +			pfn = pte_pfn(pte);
>>   			if (is_zero_pfn(pfn)) {
>>   				mpfn = MIGRATE_PFN_MIGRATE;
>>   				migrate->cpages++;
>> -				pfn = 0;
>>   				goto next;
>>   			}
>>   			page = vm_normal_page(migrate->vma, addr, pte);
>> @@ -2265,10 +2263,9 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>>   
>>   		/* FIXME support THP */
>>   		if (!page || !page->mapping || PageTransCompound(page)) {
>> -			mpfn = pfn = 0;
>> +			mpfn = 0;
>>   			goto next;
>>   		}
>> -		pfn = page_to_pfn(page);
> 
> You can not remove that one ! Otherwise it will break the device
> private case.
> 

I don't understand. The only use of "pfn" I see is in the "else"
clause above where it is set just before using it.
Jerome Glisse Aug. 15, 2019, 7:40 p.m. UTC | #4
On Thu, Aug 15, 2019 at 12:23:44PM -0700, Ralph Campbell wrote:
> 
> On 8/15/19 10:19 AM, Jerome Glisse wrote:
> > On Wed, Aug 07, 2019 at 04:41:12PM +0800, Pingfan Liu wrote:
> > > Clean up useless 'pfn' variable.
> > 
> > NAK there is a bug see below:
> > 
> > > 
> > > Signed-off-by: Pingfan Liu <kernelfans@gmail.com>
> > > Cc: "Jérôme Glisse" <jglisse@redhat.com>
> > > Cc: Andrew Morton <akpm@linux-foundation.org>
> > > Cc: Mel Gorman <mgorman@techsingularity.net>
> > > Cc: Jan Kara <jack@suse.cz>
> > > Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> > > Cc: Michal Hocko <mhocko@suse.com>
> > > Cc: Mike Kravetz <mike.kravetz@oracle.com>
> > > Cc: Andrea Arcangeli <aarcange@redhat.com>
> > > Cc: Matthew Wilcox <willy@infradead.org>
> > > To: linux-mm@kvack.org
> > > Cc: linux-kernel@vger.kernel.org
> > > ---
> > >   mm/migrate.c | 9 +++------
> > >   1 file changed, 3 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/mm/migrate.c b/mm/migrate.c
> > > index 8992741..d483a55 100644
> > > --- a/mm/migrate.c
> > > +++ b/mm/migrate.c
> > > @@ -2225,17 +2225,15 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
> > >   		pte_t pte;
> > >   		pte = *ptep;
> > > -		pfn = pte_pfn(pte);
> > >   		if (pte_none(pte)) {
> > >   			mpfn = MIGRATE_PFN_MIGRATE;
> > >   			migrate->cpages++;
> > > -			pfn = 0;
> > >   			goto next;
> > >   		}
> > >   		if (!pte_present(pte)) {
> > > -			mpfn = pfn = 0;
> > > +			mpfn = 0;
> > >   			/*
> > >   			 * Only care about unaddressable device page special
> > > @@ -2252,10 +2250,10 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
> > >   			if (is_write_device_private_entry(entry))
> > >   				mpfn |= MIGRATE_PFN_WRITE;
> > >   		} else {
> > > +			pfn = pte_pfn(pte);
> > >   			if (is_zero_pfn(pfn)) {
> > >   				mpfn = MIGRATE_PFN_MIGRATE;
> > >   				migrate->cpages++;
> > > -				pfn = 0;
> > >   				goto next;
> > >   			}
> > >   			page = vm_normal_page(migrate->vma, addr, pte);
> > > @@ -2265,10 +2263,9 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
> > >   		/* FIXME support THP */
> > >   		if (!page || !page->mapping || PageTransCompound(page)) {
> > > -			mpfn = pfn = 0;
> > > +			mpfn = 0;
> > >   			goto next;
> > >   		}
> > > -		pfn = page_to_pfn(page);
> > 
> > You can not remove that one ! Otherwise it will break the device
> > private case.
> > 
> 
> I don't understand. The only use of "pfn" I see is in the "else"
> clause above where it is set just before using it.

Ok i managed to confuse myself with mpfn and probably with old
version of the code. Sorry for reading too quickly. Can we move
unsigned long pfn; into the else { branch so that there is no
more confusion to its scope.

Cheers,
Jérôme
Pingfan Liu Aug. 16, 2019, 1:21 p.m. UTC | #5
On Thu, Aug 15, 2019 at 03:40:21PM -0400, Jerome Glisse wrote:
> On Thu, Aug 15, 2019 at 12:23:44PM -0700, Ralph Campbell wrote:
> [...]
> > 
> > I don't understand. The only use of "pfn" I see is in the "else"
> > clause above where it is set just before using it.
> 
> Ok i managed to confuse myself with mpfn and probably with old
> version of the code. Sorry for reading too quickly. Can we move
> unsigned long pfn; into the else { branch so that there is no
> more confusion to its scope.
Looks better, I will update v3.

Thanks,
	Pingfan
diff mbox series

Patch

diff --git a/mm/migrate.c b/mm/migrate.c
index 8992741..d483a55 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -2225,17 +2225,15 @@  static int migrate_vma_collect_pmd(pmd_t *pmdp,
 		pte_t pte;
 
 		pte = *ptep;
-		pfn = pte_pfn(pte);
 
 		if (pte_none(pte)) {
 			mpfn = MIGRATE_PFN_MIGRATE;
 			migrate->cpages++;
-			pfn = 0;
 			goto next;
 		}
 
 		if (!pte_present(pte)) {
-			mpfn = pfn = 0;
+			mpfn = 0;
 
 			/*
 			 * Only care about unaddressable device page special
@@ -2252,10 +2250,10 @@  static int migrate_vma_collect_pmd(pmd_t *pmdp,
 			if (is_write_device_private_entry(entry))
 				mpfn |= MIGRATE_PFN_WRITE;
 		} else {
+			pfn = pte_pfn(pte);
 			if (is_zero_pfn(pfn)) {
 				mpfn = MIGRATE_PFN_MIGRATE;
 				migrate->cpages++;
-				pfn = 0;
 				goto next;
 			}
 			page = vm_normal_page(migrate->vma, addr, pte);
@@ -2265,10 +2263,9 @@  static int migrate_vma_collect_pmd(pmd_t *pmdp,
 
 		/* FIXME support THP */
 		if (!page || !page->mapping || PageTransCompound(page)) {
-			mpfn = pfn = 0;
+			mpfn = 0;
 			goto next;
 		}
-		pfn = page_to_pfn(page);
 
 		/*
 		 * By getting a reference on the page we pin it and that blocks