Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1590880 > unrolled thread

[RFC 03/11] mm: remove SWAP_DIRTY in ttu

Started byMinchan Kim <minchan@kernel.org>
First post2017-03-02 08:20 +0100
Last post2017-03-07 15:50 +0100
Articles 5 — 4 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [RFC 03/11] mm: remove SWAP_DIRTY in ttu Minchan Kim <minchan@kernel.org> - 2017-03-02 08:20 +0100
    Re: [RFC 03/11] mm: remove SWAP_DIRTY in ttu "Hillf Danton" <hillf.zj@alibaba-inc.com> - 2017-03-02 08:40 +0100
      Re: [RFC 03/11] mm: remove SWAP_DIRTY in ttu Minchan Kim <minchan@kernel.org> - 2017-03-03 04:00 +0100
    Re: [RFC 03/11] mm: remove SWAP_DIRTY in ttu Anshuman Khandual <khandual@linux.vnet.ibm.com> - 2017-03-02 22:20 +0100
    Re: [RFC 03/11] mm: remove SWAP_DIRTY in ttu "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-03-07 15:50 +0100

#1590880 — [RFC 03/11] mm: remove SWAP_DIRTY in ttu

FromMinchan Kim <minchan@kernel.org>
Date2017-03-02 08:20 +0100
Subject[RFC 03/11] mm: remove SWAP_DIRTY in ttu
Message-ID<tgtbP-7hM-3@gated-at.bofh.it>
If we found lazyfree page is dirty, ttuo can just SetPageSwapBakced
in there like PG_mlocked page and just return with SWAP_FAIL which
is very natural because the page is not swappable right now so that
vmscan can activate it. There is no point to introduce new return
value SWAP_DIRTY in ttu at the moment.

Cc: Shaohua Li <shli@kernel.org>
Signed-off-by: Minchan Kim <minchan@kernel.org>
---
 include/linux/rmap.h | 1 -
 mm/rmap.c            | 4 ++--
 mm/vmscan.c          | 3 ---
 3 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index fee10d7..b556eef 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -298,6 +298,5 @@ static inline int page_mkclean(struct page *page)
 #define SWAP_AGAIN	1
 #define SWAP_FAIL	2
 #define SWAP_MLOCK	3
-#define SWAP_DIRTY	4
 
 #endif	/* _LINUX_RMAP_H */
diff --git a/mm/rmap.c b/mm/rmap.c
index 8076347..3a14013 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1424,7 +1424,8 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
 			} else if (!PageSwapBacked(page)) {
 				/* dirty MADV_FREE page */
 				set_pte_at(mm, address, pvmw.pte, pteval);
-				ret = SWAP_DIRTY;
+				SetPageSwapBacked(page);
+				ret = SWAP_FAIL;
 				page_vma_mapped_walk_done(&pvmw);
 				break;
 			}
@@ -1494,7 +1495,6 @@ static int page_mapcount_is_zero(struct page *page)
  * SWAP_AGAIN	- we missed a mapping, try again later
  * SWAP_FAIL	- the page is unswappable
  * SWAP_MLOCK	- page is mlocked.
- * SWAP_DIRTY	- page is dirty MADV_FREE page
  */
 int try_to_unmap(struct page *page, enum ttu_flags flags)
 {
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 7aa89e3..91cef05 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1141,9 +1141,6 @@ static unsigned long shrink_page_list(struct list_head *page_list,
 		if (page_mapped(page)) {
 			switch (ret = try_to_unmap(page,
 				ttu_flags | TTU_BATCH_FLUSH)) {
-			case SWAP_DIRTY:
-				SetPageSwapBacked(page);
-				/* fall through */
 			case SWAP_FAIL:
 				nr_unmap_fail++;
 				goto activate_locked;
-- 
2.7.4

[toc] | [next] | [standalone]


#1590894

From"Hillf Danton" <hillf.zj@alibaba-inc.com>
Date2017-03-02 08:40 +0100
Message-ID<tgtvb-7o3-1@gated-at.bofh.it>
In reply to#1590880
On March 02, 2017 2:39 PM Minchan Kim wrote: 
> @@ -1424,7 +1424,8 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
>  			} else if (!PageSwapBacked(page)) {
>  				/* dirty MADV_FREE page */

Nit: enrich the comment please.
>  				set_pte_at(mm, address, pvmw.pte, pteval);
> -				ret = SWAP_DIRTY;
> +				SetPageSwapBacked(page);
> +				ret = SWAP_FAIL;
>  				page_vma_mapped_walk_done(&pvmw);
>  				break;
>  			}

[toc] | [prev] | [next] | [standalone]


#1591641

FromMinchan Kim <minchan@kernel.org>
Date2017-03-03 04:00 +0100
Message-ID<tgLBL-2Y3-1@gated-at.bofh.it>
In reply to#1590894
Hi Hillf,

On Thu, Mar 02, 2017 at 03:34:45PM +0800, Hillf Danton wrote:
> 
> On March 02, 2017 2:39 PM Minchan Kim wrote: 
> > @@ -1424,7 +1424,8 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
> >  			} else if (!PageSwapBacked(page)) {
> >  				/* dirty MADV_FREE page */
> 
> Nit: enrich the comment please.

I guess what you wanted is not my patch doing but one merged already
so I just sent a small clean patch against of patch merged onto mmotm
to make thig logic clear. You are already Cced in there so you can
see it. Hope it well. If you want others, please tell me.
I will do something to make it clear.

Thanks for the review.

> >  				set_pte_at(mm, address, pvmw.pte, pteval);
> > -				ret = SWAP_DIRTY;
> > +				SetPageSwapBacked(page);
> > +				ret = SWAP_FAIL;
> >  				page_vma_mapped_walk_done(&pvmw);
> >  				break;
> >  			}
> 
> --
> 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>

[toc] | [prev] | [next] | [standalone]


#1591466

FromAnshuman Khandual <khandual@linux.vnet.ibm.com>
Date2017-03-02 22:20 +0100
Message-ID<tgGiL-80q-25@gated-at.bofh.it>
In reply to#1590880
On 03/02/2017 12:09 PM, Minchan Kim wrote:
> If we found lazyfree page is dirty, ttuo can just SetPageSwapBakced
> in there like PG_mlocked page and just return with SWAP_FAIL which
> is very natural because the page is not swappable right now so that
> vmscan can activate it. There is no point to introduce new return
> value SWAP_DIRTY in ttu at the moment.

Yeah makes sense. In the process, SetPageSwapBacked marking of the page
is moved from the shrink_page_list() to try_to_unmap_one().

[toc] | [prev] | [next] | [standalone]


#1594298

From"Kirill A. Shutemov" <kirill@shutemov.name>
Date2017-03-07 15:50 +0100
Message-ID<tioB4-pr-23@gated-at.bofh.it>
In reply to#1590880
On Thu, Mar 02, 2017 at 03:39:17PM +0900, Minchan Kim wrote:
> If we found lazyfree page is dirty, ttuo can just SetPageSwapBakced
> in there like PG_mlocked page and just return with SWAP_FAIL which
> is very natural because the page is not swappable right now so that
> vmscan can activate it. There is no point to introduce new return
> value SWAP_DIRTY in ttu at the moment.
> 
> Cc: Shaohua Li <shli@kernel.org>
> Signed-off-by: Minchan Kim <minchan@kernel.org>

Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

-- 
 Kirill A. Shutemov

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web