> +bool mem_cgroup_kswapd_can_sleep(void) > +{ > + return list_empty(&memcg_kswapd_control.list); > +} and, > @@ -2583,40 +2585,46 @@ static void kswapd_try_to_sleep(struct kswapd *kswapd_p, int order, > } else { > + /* For now, we just check the remaining works.*/ > + if (mem_cgroup_kswapd_can_sleep()) > + schedule(); has bad assumption. If freeable memory is very little and kswapds are contended, memcg-kswap also have to give up and go into sleep as global kswapd. Otherwise, We are going to see kswapd cpu 100% consumption issue again. -- 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 internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>