On Wed 23-11-16 14:53:12, Hillf Danton wrote: > On Wednesday, November 23, 2016 2:34 PM Michal Hocko wrote: > > @@ -3161,6 +3161,16 @@ should_compact_retry(struct alloc_context *ac, > > unsigned int order, int alloc_fla > > if (!order || order > PAGE_ALLOC_COSTLY_ORDER) > > return false; > > > > +#ifdef CONFIG_COMPACTION > > + /* > > + * This is a gross workaround to compensate a lack of reliable > > compaction > > + * operation. We cannot simply go OOM with the current state of the > > compaction > > + * code because this can lead to pre mature OOM declaration. > > + */ > > + if (order <= PAGE_ALLOC_COSTLY_ORDER) > > No need to check order once more.
yes simple return true would be sufficient but I wanted the code to be more obvious. > Plus can we retry without CONFIG_COMPACTION enabled? Yes checking the order-0 watermark was the original implementation of the high order retry without compaction enabled. I do not rememeber any reports for that so I didn't want to touch that path. -- Michal Hocko SUSE Labs