On Thu, Jun 18, 2020 at 8:37 PM Chris Down <chris@xxxxxxxxxxxxxx> wrote: > > Yafang Shao writes: > >On Thu, Jun 18, 2020 at 5:09 AM Chris Down <chris@xxxxxxxxxxxxxx> wrote: > >> > >> Naresh Kamboju writes: > >> >After this patch applied the reported issue got fixed. > >> > >> Great! Thank you Naresh and Michal for helping to get to the bottom of this :-) > >> > >> I'll send out a new version tomorrow with the fixes applied and both of you > >> credited in the changelog for the detection and fix. > > > >As we have already found that the usage around memory.{emin, elow} has > >many limitations, I think memory.{emin, elow} should be used for > >memcg-tree internally only, that means they can only be used to > >calculate the protection of a memcg in a specified memcg-tree but > >should not be exposed to other MM parts. > > I agree that the current semantics are mentally taxing and we should generally > avoid exposing the implementation details outside of memcg where possible. Do > you have a suggested rework? :-) Keeping the mem_cgroup_protected() as-is is my suggestion. Anyway I think it is bad to put memory.{emin, elow} here and there. If we don't have any better idea by now, just putting all the references of memory.{emin, elow} into one wrapper(mem_cgroup_protected()) is the reasonable solution. -- Thanks Yafang