Re: [PATCH v20 07/20] mm/vmscan: remove unnecessary lruvec adding
From: Johannes Weiner
Date: Mon Nov 02 2020 - 09:22:22 EST
On Thu, Oct 29, 2020 at 06:44:52PM +0800, Alex Shi wrote:
> We don't have to add a freeable page into lru and then remove from it.
> This change saves a couple of actions and makes the moving more clear.
>
> The SetPageLRU needs to be kept before put_page_testzero for list
> integrity, otherwise:
>
> #0 move_pages_to_lru #1 release_pages
> if !put_page_testzero
> if (put_page_testzero())
> !PageLRU //skip lru_lock
> SetPageLRU()
> list_add(&page->lru,)
> list_add(&page->lru,)
>
> [akpm@xxxxxxxxxxxxxxxxxxxx: coding style fixes]
> Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
> Acked-by: Hugh Dickins <hughd@xxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>
> Cc: Hugh Dickins <hughd@xxxxxxxxxx>
> Cc: linux-mm@xxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>