On Fri, 12 Nov 2010 12:39:35 -0800 Greg Thelen <gthelen@xxxxxxxxxx> wrote: > > Odd branch ordering, but I may be OCDing again. > > > > if (mem_cgroup && memcg_dirty_info()) > > do_mem_cgroup_stuff() > > else > > do_global_stuff() > > > > would be more natural, IMO. > > I agree. I will resubmit this series with your improved branch ordering. > Hmm. I think this patch is troublesome. This patch will make memcg's pageout routine _not_ throttoled even when the whole system vmscan's pageout is throttoled. So, one idea is.... Make this change == +++ b/mm/vmscan.c @@ -1844,7 +1844,7 @@ static void shrink_zone(int priority, struct zone *zone, if (inactive_anon_is_low(zone, sc)) shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0); - throttle_vm_writeout(sc->gfp_mask); + throttle_vm_writeout(sc->gfp_mask, sc->mem_cgroup); } == as == if (!sc->mem_cgroup || throttle_vm_writeout(sc->gfp_mask, sc->mem_cgroup) == not throttled) throttole_vm_writeout(sc->gfp_mask, NULL); Then, both of memcg and global dirty thresh will be checked. -Kame -- 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>