+static int __reclaim_pages(struct zone *zone, gfp_t gfp_mask, int count) +{
- /*
- * Increase level of watermarks to force kswapd do his job
- * to stabilise at new watermark level.
- */
- __update_cma_watermarks(zone, count);
- /* Obey watermarks as if the page was being allocated */
- watermark = low_wmark_pages(zone) + count;
- while (!zone_watermark_ok(zone, 0, watermark, 0, 0)) {
Wouldn't this reclaim (2 * count pages) above low wmark?
You are updating the low wmark first and then adding "count" for the zone_watermark_ok() check as well ..
Sandeep