Re: [PATCH V4 3/6] mm: move MADV_FREE pages into LRU_INACTIVE_FILE list

From: Shaohua Li
Date: Thu Feb 23 2017 - 12:04:09 EST


On Thu, Feb 23, 2017 at 10:58:27AM -0500, Johannes Weiner wrote:
> Hi Shaohua,
>
> On Wed, Feb 22, 2017 at 10:50:41AM -0800, Shaohua Li wrote:
> > @@ -268,6 +268,12 @@ static void __activate_page(struct page *page, struct lruvec *lruvec,
> > int lru = page_lru_base_type(page);
> >
> > del_page_from_lru_list(page, lruvec, lru);
> > + if (PageAnon(page) && !PageSwapBacked(page)) {
> > + SetPageSwapBacked(page);
> > + /* charge to anon scanned/rotated reclaim_stat */
> > + file = 0;
> > + lru = LRU_INACTIVE_ANON;
> > + }
>
> As per my previous feedback, please remove this. Write-after-free will
> be caught and handled in the reclaimer, read-after-free is a bug that
> really doesn't require optimizing page aging for. And we definitely
> shouldn't declare invalid data suddenly valid because it's being read.

GUP could run into this. Don't we move the page because it's hot? I think it's
not just about page aging. If we leave the page there, page reclaim will just
waste time to reclaim the pages which should't be reclaimed.

Thanks,
Shaohua