Re: [patch] mm, thp: abort compaction if migration page cannot becharged to memcg

From: David Rientjes
Date: Thu Jun 21 2012 - 05:01:43 EST


On Thu, 21 Jun 2012, David Rientjes wrote:

> It's possible that subsequent pageblocks would contain memory allocated
> from solely non-oom memcgs, but it's certainly not a guarantee and results
> in terrible performance as exhibited above. Is there another good
> criteria to use when deciding when to stop isolating and attempting to
> migrate all of these pageblocks?
>
> Other ideas?
>

The only other alternative that I can think of is to check
mem_cgroup_margin() in isolate_migratepages_range() and return a NULL
lruvec that would break that pageblock and return, and then set a bit in
struct mem_cgroup that labels it as oom so we can check for it on
subsequent pageblocks without incurring the locking to do
mem_cgroup_margin() in res_counter, and then clear that bit on every
uncharge to a memcg, but this still seems like a tremendous waste of cpu
(especially if /sys/kernel/mm/transparent_hugepage/defrag == always) if
most pageblocks contain pages from an oom memcg.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/