> ok let me clarify, in the for-loop of balance_pgdat() we reclaim 32 > pages one time. but we have > if (!all_zones_ok) { > ... > if (sc.nr_reclaimed < SWAP_CLUSTER_MAX) > order = sc.order = 0; > > goto loop_again; > } > only when sc.nr_reclaimed < SWAP_CLUSTER_MAX or priority < 0, we set > order to 0. before this, we still use high order for zone_watermark_ok() > and it will fail and we keep doing page reclaim. So in the proposed > patch by you or Mel, checking the freed pages or order in kswapd() is > later. so I suggest we check if there is enough free pages in > balance_pgdat() and break high order allocation if yes. Ok, got it. Thanks. But I think Mel's approach is more conservative. I don't think a lot of order-0 pages are good sign to ignore high order shortage. I think we should prevent overkill reclaim, but number of order-0 pages are not related high order overkill. My point is, many cheap device require high order GFP_ATOMIC allocation and high order ignorerance may makes system unstabilization on laptop world. At least, your patch need more conservative guard. -- 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/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>