On Tue 21-04-20 10:27:46, Johannes Weiner wrote: > On Tue, Apr 21, 2020 at 01:06:12PM +0200, Michal Hocko wrote: [...] > > I am also not sure about the isolation aspect. Because an external > > memory pressure might have pushed out memory to the swap and then the > > workload is throttled based on an external event. Compare that to the > > memory.high throttling which is not directly affected by the external > > pressure. > > Neither memory.high nor swap.high isolate from external pressure. I didn't say they do. What I am saying is that an external pressure might punish swap.high memcg because the external memory pressure would eat up the quota and trigger the throttling. It is fair to say that this externally triggered interference is already possible with swap.max as well though. It would likely be just more verbose because of the oom killer intervention rather than a slowdown. > They > are put on cgroups so they don't cause pressure on other cgroups. Swap > is required when either your footprint grows or your available space > shrinks. That's why it behaves like that. > > That being said, I think we're getting lost in the implementation > details before we have established what the purpose of this all > is. Let's talk about this first. Thanks for describing it in the length. I have a better picture of the intention (this should have been in the changelog ideally). I can see how the swap consumption throttling might be useful but I still dislike the proposed implementation. Mostly because of throttling of all allocations regardless whether they can contribute to the swap consumption or not. -- Michal Hocko SUSE Labs