On Tue 10-05-16 09:35:51, Vlastimil Babka wrote: > From: Hugh Dickins <hu...@google.com> > > At present MIGRATE_SYNC_LIGHT is allowing __isolate_lru_page() to > isolate a PageWriteback page, which __unmap_and_move() then rejects > with -EBUSY: of course the writeback might complete in between, but > that's not what we usually expect, so probably better not to isolate it.
this makes a lot of sense regardless the rest of the series. I will have a look at the rest tomorrow more closely. > > Signed-off-by: Hugh Dickins <hu...@google.com> > Signed-off-by: Vlastimil Babka <vba...@suse.cz> Acked-by: Michal Hocko <mho...@suse.com> > --- > mm/compaction.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index c72987603343..481004c73c90 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -1146,7 +1146,7 @@ static isolate_migrate_t isolate_migratepages(struct > zone *zone, > struct page *page; > const isolate_mode_t isolate_mode = > (sysctl_compact_unevictable_allowed ? ISOLATE_UNEVICTABLE : 0) | > - (cc->mode == MIGRATE_ASYNC ? ISOLATE_ASYNC_MIGRATE : 0); > + (cc->mode != MIGRATE_SYNC ? ISOLATE_ASYNC_MIGRATE : 0); > > /* > * Start at where we last stopped, or beginning of the zone as > -- > 2.8.2 -- Michal Hocko SUSE Labs