On Tue 10-09-19 12:23:04, Minchan Kim wrote: > On Tue, Sep 03, 2019 at 04:27:46PM +0800, sunqiuyang wrote: > > From: Qiuyang Sun <sunqiuyang@xxxxxxxxxx> > > > > Currently, after a page is migrated, it > > 1) has its PG_isolated flag cleared in move_to_new_page(), and > > 2) is deleted from its LRU list (cc->migratepages) in unmap_and_move(). > > However, between steps 1) and 2), the page could be isolated by another > > thread in isolate_movable_page(), and added to another LRU list, leading > > to list_del corruption later. > > Once non-LRU page is migrated out successfully, driver should clear > the movable flag in the page. Look at reset_page in zs_page_migrate. > So, other thread couldn't isolate the page during the window. > > If I miss something, let me know it. Please have a look at http://lkml.kernel.org/r/157FC541501A9C4C862B2F16FFE316DC190C5990@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -- Michal Hocko SUSE Labs