On Thu 28-05-15 20:26:06, Vladimir Davydov wrote: > When trimming memcg consumption excess (see memory.high), we call > try_to_free_mem_cgroup_pages without checking if we are allowed to sleep > in the current context, which can result in a deadlock. Fix this. > Fixes: 241994ed8649 ("mm: memcontrol: default hierarchy interface for memory") And I would make it for stable 4.0 > Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> > Cc: Johannes Weiner <hannes@xxxxxxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxx> Thanks! > --- > mm/memcontrol.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 14c2f2017e37..9da23a7ec4c0 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -2323,6 +2323,8 @@ done_restock: > css_get_many(&memcg->css, batch); > if (batch > nr_pages) > refill_stock(memcg, batch - nr_pages); > + if (!(gfp_mask & __GFP_WAIT)) > + goto done; > /* > * If the hierarchy is above the normal consumption range, > * make the charging task trim their excess contribution. > -- > 2.1.4 > -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>