Re: threads-max observe limits

From: Eric W. Biederman
Date: Sun Sep 22 2019 - 18:32:42 EST


Heinrich Schuchardt <xypron.glpk@xxxxxx> writes:

> Did this patch when applied to the customer's kernel solve any problem?
>
> WebSphere MQ is a messaging application. If it hits the current limits
> of threads-max, there is a bug in the software or in the way that it has
> been set up at the customer. Instead of messing around with the kernel
> the application should be fixed.

While it is true that almost every workload will be buggy if it exceeds
1/8 of memory with just the kernel data structures for threads. It is
not necessary true of every application. I can easily imagine cases
up around 1/2 of memory where things could work reasonably.

Further we can exhaust all of memory much more simply in a default
configuration by malloc'ing more memory that in physically present
and zeroing it all.

Henrich, you were the one messed with the kernel by breaking a
reasonable kernel tunable. AKA you caused a regression. That violates
the no regression rule.

As much as possible we fix regressions so software that used to work
continues to work. Removing footguns is not a reason to introduce a
regression.

I do agree that Michal's customer's problem sounds like it is something
else but if the kernel did not have a regression we could focus on the
real problem instead of being side tracked by the regression.

> With this patch you allow administrators to set values that will crash
> their system. And they will not even have a way to find out the limits
> which he should adhere to. So expect a lot of systems to be downed
> this way.

Nope. The system administrator just setting a higher value whon't crash
their system. Only using that many resources would crash the system.

Nor is a sysctl like this for discovering the physical limits of a
machine. Which the current value is vastly inappropriate for. As
the physical limits of many machines are much higher than 1/8 of memory.

Eric