On Mon, Jul 25, 2016 at 05:39:13PM +0900, Minchan Kim wrote: > > @@ -1465,14 +1471,24 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan, > > */ > > if (!list_empty(&pages_skipped)) { > > int zid; > > + unsigned long total_skipped = 0; > > > > - list_splice(&pages_skipped, src); > > for (zid = 0; zid < MAX_NR_ZONES; zid++) { > > if (!nr_skipped[zid]) > > continue; > > > > __count_zid_vm_events(PGSCAN_SKIP, zid, nr_skipped[zid]); > > + total_skipped += nr_skipped[zid]; > > } > > + > > + /* > > + * Account skipped pages as a partial scan as the pgdat may be > > + * close to unreclaimable. If the LRU list is empty, account > > + * skipped pages as a full scan. > > + */ > > node-lru made OOM detection lengthy because a freeing of any zone will > reset NR_PAGES_SCANNED easily so that it's hard to meet a situation > pgdat_reclaimable returns *false*. > Your patch should go a long way to addressing that as it checks the zone counters first before conducting the scan. Remember as well that the longer detection of OOM only applies to zone-constrained allocations and there is always the possibility that highmem shrinking of pages frees lowmem memory if buffers are used. -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>