On Wed, 21 Jan 2015, Vlastimil Babka wrote: > On 01/21/2015 10:34 AM, Vinayak Menon wrote: > > Commit "3611badc1baa" (mm: vmscan: fix the page state calculation in > > That appears to be a -next commit ID, which won't be the same in Linus' tree, so > it shouldn't be in commit message, AFAIK. > > > too_many_isolated) fixed an issue where a number of tasks were > > blocked in reclaim path for seconds, because of vmstat_diff not being > > synced in time. A similar problem can happen in isolate_migratepages_block, > > similar calculation is performed. This patch fixes that. > > I guess it's not possible to fix the stats instantly and once in the safe > versions, so that future readings will be correct without safe, right? > So until it gets fixed, each reading will have to be safe and thus expensive? > Yeah, this patch will actually hurt performance for the migration scanner but not as much as stalling unnecessarily when the snapshot is the same. > I think in case of async compaction, we could skip the safe stuff and just > terminate it - it's already done when too_many_isolated returns true, and > there's no congestion waiting in that case. > > So you could extend the too_many_isolated() with "safe" parameter (as you did > for vmscan) and pass it "cc->mode != MIGRATE_ASYNC" value from > isolate_migrate_block(). > Or just pass it struct compact_control *cc and use both cc->zone and cc->mode inside this compaction-only function. -- 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>