Re: [RFC PATCH 0/8] memcg: Enable fine-grained per process memory control

From: Chris Down
Date: Tue Aug 18 2020 - 06:35:51 EST


peterz@xxxxxxxxxxxxx writes:
On Tue, Aug 18, 2020 at 11:17:56AM +0100, Chris Down wrote:

I'd ask that you understand a bit more about the tradeoffs and intentions of
the patch before rushing in to declare its failure, considering it works
just fine :-)

Clamping the maximal time allows the application to take some action to
remediate the situation, while still being slowed down significantly. 2
seconds per allocation batch is still absolutely plenty for any use case
I've come across. If you have evidence it isn't, then present that instead
of vague notions of "wrongness".

There is no feedback from the freeing rate, therefore it cannot be
correct in maintaining a maximum amount of pages.

memory.high is not about maintaining a maximum amount of pages. It's strictly best-effort, and the ramifications of a breach are typically fundamentally different than for dirty throttling.

0.5 pages / sec is still non-zero, and if the free rate is 0, you'll
crawl across whatever limit was set without any bounds. This is math
101.

It's true that I haven't been paying attention to mm in a while, but I
was one of the original authors of the I/O dirty balancing, I do think I
understand how these things work.

You're suggesting we replace a well understood, easy to reason about model with something non-trivially more complex, all on the back of you suggesting that the current approach is "wrong" without any evidence or quantification.

Peter, we're not going to throw out perfectly function memcg code simply because of your say so, especially when you've not asked for information or context about the tradeoffs involved, or presented any evidence that something perverse is actually happening.

Prescribing a specific solution modelled on some other code path here without producing evidence or measurements specific to the nuances of this particular endpoint is not a recipe for success.