On Sun, Feb 07, 2016 at 08:27:35PM +0300, Vladimir Davydov wrote: > Workingset code was recently made memcg aware, but shadow node shrinker > is still global. As a result, one small cgroup can consume all memory > available for shadow nodes, possibly hurting other cgroups by reclaiming > their shadow nodes, even though reclaim distances stored in its shadow > nodes have no effect. To avoid this, we need to make shadow node > shrinker memcg aware. > > Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> This patch is straight forward, but there is one tiny thing that bugs me about it, and that is switching from available memory to the size of the active list. Because the active list can shrink drastically at runtime. It's true that both the shrinking of the active list and subsequent activations to regrow it will reduce the number of actionable refaults, and so it wouldn't be unreasonable to also shrink shadow nodes when the active list shrinks. However, I think these are too many assumptions to encode in the shrinker, because it is only meant to prevent a worst-case explosion of radix tree nodes. I'd prefer it to be dumb and conservative. Could we instead go with the current usage of the memcg? Whether reclaim happens globally or due to the memory limit, the usage at the time of reclaim gives a good idea of the memory is available to the group. But it's making less assumptions about the internal composition of the memcg's memory, and the consequences associated with that. What do you think? -- 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>