Re: [PATCH v3] mm/swap: Fix release_pages() when releasing devmap pages

2019-06-04 Thread Dan Williams
On Tue, Jun 4, 2019 at 1:17 PM John Hubbard wrote: > > On 6/4/19 1:11 PM, Dan Williams wrote: > > On Tue, Jun 4, 2019 at 12:48 PM John Hubbard wrote: > >> > >> On 6/4/19 9:48 AM, ira.we...@intel.com wrote: > >>> From: Ira Weiny > >>> > ... > >>> diff --git a/mm/swap.c b/mm/swap.c > >>> index

Re: [PATCH v3] mm/swap: Fix release_pages() when releasing devmap pages

2019-06-04 Thread Ira Weiny
On Tue, Jun 04, 2019 at 01:17:42PM -0700, John Hubbard wrote: > On 6/4/19 1:11 PM, Dan Williams wrote: > > On Tue, Jun 4, 2019 at 12:48 PM John Hubbard wrote: > >> > >> On 6/4/19 9:48 AM, ira.we...@intel.com wrote: > >>> From: Ira Weiny > >>> > ... > >>> diff --git a/mm/swap.c b/mm/swap.c > >>>

Re: [PATCH v3] mm/swap: Fix release_pages() when releasing devmap pages

2019-06-04 Thread John Hubbard
On 6/4/19 1:11 PM, Dan Williams wrote: > On Tue, Jun 4, 2019 at 12:48 PM John Hubbard wrote: >> >> On 6/4/19 9:48 AM, ira.we...@intel.com wrote: >>> From: Ira Weiny >>> ... >>> diff --git a/mm/swap.c b/mm/swap.c >>> index 7ede3eddc12a..6d153ce4cb8c 100644 >>> --- a/mm/swap.c >>> +++ b/mm/swap.c

Re: [PATCH v3] mm/swap: Fix release_pages() when releasing devmap pages

2019-06-04 Thread Dan Williams
On Tue, Jun 4, 2019 at 12:48 PM John Hubbard wrote: > > On 6/4/19 9:48 AM, ira.we...@intel.com wrote: > > From: Ira Weiny > > > > release_pages() is an optimized version of a loop around put_page(). > > Unfortunately for devmap pages the logic is not entirely correct in > > release_pages().

Re: [PATCH v3] mm/swap: Fix release_pages() when releasing devmap pages

2019-06-04 Thread John Hubbard
On 6/4/19 9:48 AM, ira.we...@intel.com wrote: > From: Ira Weiny > > release_pages() is an optimized version of a loop around put_page(). > Unfortunately for devmap pages the logic is not entirely correct in > release_pages(). This is because device pages can be more than type >

[PATCH v3] mm/swap: Fix release_pages() when releasing devmap pages

2019-06-04 Thread ira . weiny
From: Ira Weiny release_pages() is an optimized version of a loop around put_page(). Unfortunately for devmap pages the logic is not entirely correct in release_pages(). This is because device pages can be more than type MEMORY_DEVICE_PUBLIC. There are in fact 4 types, private, public, FS DAX,