> > In this case, wakeup_kswapd() don't wake kswapd because > > > > --------------------------------------------------------------------------------- > > void wakeup_kswapd(struct zone *zone, int order) > > { > > pg_data_t *pgdat; > > > > if (!populated_zone(zone)) > > return; > > > > pgdat = zone->zone_pgdat; > > if (zone_watermark_ok(zone, order, low_wmark_pages(zone), 0, 0)) > > return; // HERE > > --------------------------------------------------------------------------------- > > > > So, if we take your approach, we need to know exact free pages in this. > > Good point! > > > But, zone_page_state_snapshot() is slow. that's dilemma. > > > > Very true. I'm prototyping a version of the patch that keeps > zone_page_state_snapshot but only uses is in wakeup_kswapd and > sleeping_prematurely. Ok, this might works. but note, if we are running IO intensive workload, wakeup_kswapd() is called very frequently. because it is called even though allocation is succeed. we need to request Shaohua run and mesure his problem workload. and can you please cc me when you post next version? I hope to review it too. Thanks. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>