Re: [PATCH] slub: Avoid direct compaction if possible

From: Michal Hocko
Date: Mon Jun 17 2013 - 10:27:25 EST

On Mon 17-06-13 16:34:23, Roman Gushchin wrote:
> On 15.06.2013 00:26, David Rientjes wrote:
> >On Fri, 14 Jun 2013, Christoph Lameter wrote:
> >
> >>>It's possible to avoid such problems (or at least to make them less probable)
> >>>by avoiding direct compaction. If it's not possible to allocate a contiguous
> >>>page without compaction, slub will fall back to order 0 page(s). In this case
> >>>kswapd will be woken to perform asynchronous compaction. So, slub can return
> >>>to default order allocations as soon as memory will be de-fragmented.
> >>
> >>Sounds like a good idea. Do you have some numbers to show the effect of
> >>this patch?
> >>
> >
> >I'm surprised you like this patch, it basically makes slub allocations to
> >be atomic and doesn't try memory compaction nor reclaim. Asynchronous
> >compaction certainly isn't aggressive enough to mimick the effects of the
> >old lumpy reclaim that would have resulted in less fragmented memory. If
> >slub is the only thing that is doing high-order allocations, it will start
> >falling back to the smallest page order much much more often.
> >
> >I agree that this doesn't seem like a slub issue at all but rather a page
> >allocator issue; if we have many simultaneous thp faults at the same time
> >and /sys/kernel/mm/transparent_hugepage/defrag is "always" then you'll get
> >the same problem if deferred compaction isn't helping.
> >
> >So I don't think we should be patching slub in any special way here.
> >
> >Roman, are you using the latest kernel? If so, what does
> >grep compact_ /proc/vmstat show after one or more of these events?
> >
> We're using 3.4. And the problem reveals when we moved from 3.2 to 3.4.
> It can be also reproduced on 3.5.

FWIW, there were some compaction locking related patches merged
around 3.7. See 2a1402aa044b55c2d30ab0ed9405693ef06fb07c and follow ups.

> I'll send the exact numbers as soon I'll reproduce it again.
> It can take up to 1 week.
> Thanks!
> Regards,
> Roman
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@xxxxxxxxxx For more info on Linux MM,
> see: .
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

Michal Hocko
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at