On Thu, Jun 18, 2020 at 8:37 PM Chris Down [off-list ref] wrote:
Yafang Shao writes:
quoted
On Thu, Jun 18, 2020 at 5:09 AM Chris Down [off-list ref] wrote:
quoted
Naresh Kamboju writes:
quoted
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