Re: [PATCH V3 2/7] mm: move MADV_FREE pages into LRU_INACTIVE_FILE list

2017-02-17 Thread Johannes Weiner
On Thu, Feb 16, 2017 at 04:35:25PM -0800, Shaohua Li wrote: > On Thu, Feb 16, 2017 at 12:52:53PM -0500, Johannes Weiner wrote: > > On Tue, Feb 14, 2017 at 11:36:08AM -0800, Shaohua Li wrote: > > > @@ -126,4 +126,24 @@ static __always_inline enum lru_list page_lru(struct > > > page *page) > > > >

Re: [PATCH V3 2/7] mm: move MADV_FREE pages into LRU_INACTIVE_FILE list

2017-02-16 Thread Shaohua Li
On Thu, Feb 16, 2017 at 12:52:53PM -0500, Johannes Weiner wrote: > On Tue, Feb 14, 2017 at 11:36:08AM -0800, Shaohua Li wrote: > > @@ -126,4 +126,24 @@ static __always_inline enum lru_list page_lru(struct > > page *page) > > > > #define lru_to_page(head) (list_entry((head)->prev, struct page, l

Re: [PATCH V3 2/7] mm: move MADV_FREE pages into LRU_INACTIVE_FILE list

2017-02-16 Thread Johannes Weiner
On Tue, Feb 14, 2017 at 11:36:08AM -0800, Shaohua Li wrote: > @@ -126,4 +126,24 @@ static __always_inline enum lru_list page_lru(struct > page *page) > > #define lru_to_page(head) (list_entry((head)->prev, struct page, lru)) > > +/* > + * lazyfree pages are clean anonymous pages. They have Sw

[PATCH V3 2/7] mm: move MADV_FREE pages into LRU_INACTIVE_FILE list

2017-02-14 Thread Shaohua Li
madv MADV_FREE indicate pages are 'lazyfree'. They are still anonymous pages, but they can be freed without pageout. To destinguish them against normal anonymous pages, we clear their SwapBacked flag. MADV_FREE pages could be freed without pageout, so they pretty much like used once file pages. Fo