On Fri, Aug 19, 2022 at 6:33 AM Tejun Heo <tj@xxxxxxxxxx> wrote: > > On Thu, Aug 18, 2022 at 12:20:33PM -1000, Tejun Heo wrote: > > We have the exact same problem for any resources which span multiple > > instances of a service including page cache, tmpfs instances and any other > > thing which can persist longer than procss life time. My current opinion is > > To expand a bit more on this point, once we start including page cache and > tmpfs, we now get entangled with memory reclaim which then brings in IO and > not-yet-but-eventually CPU usage. Introduce-a-new-layer vs introduce-a-new-cgroup, which one is more overhead? > Once you start splitting the tree like > you're suggesting here, all those will break down and now we have to worry > about how to split resource accounting and control for the same entities > across two split branches of the tree, which doesn't really make any sense. > The k8s has already been broken thanks to the memcg accounting on bpf memory. If you ignored it, I paste it below. [0]"1. The memory usage is not consistent between the first generation and new generations." This issue will persist even if you introduce a new layer. > So, we *really* don't wanna paint ourselves into that kind of a corner. This > is a dead-end. Please ditch it. > It makes non-sensen to ditch it. Because, the hierarchy I described in the commit log is *one* use case of the selectable memcg, but not *the only one* use case of it. If you dislike that hierarchy, I will remove it to avoid misleading you. Even if you introduce a new layer, you still need the selectable memcg. For example, to avoid the issue I described in [0], you still need to charge to the parent cgroup instead of the current cgroup. That's why I described in the commit log that the selectable memcg is flexible. -- Regards Yafang