It does hierarchical soft limit reclaim once triggered, but I meant
that soft limits themselves have no hierarchical meaning. Say you
have the following hierarchy:
root_mem_cgroup
aaa bbb
a1 a2 b1 b2
a1-1
Consider aaa and a1 had a soft limit. If global memory arose, aaa and
all its children would be pushed back with the current scheme, the one
you are proposing, and the one I am proposing.
But now consider aaa hitting its hard limit. Regular target reclaim
will be triggered, and a1, a2, and a1-1 will be scanned equally from
hierarchical reclaim. That a1 is in excess of its soft limit is not
considered at all.
With what I am proposing, a1 and a1-1 would be pushed back more
aggressively than a2, because a1 is in excess of its soft limit and
a1-1 is contributing to that.