Messages in this thread | | | Date | Mon, 23 Feb 2015 22:46:35 +0100 | From | Oleg Nesterov <> | Subject | Re: [PATCH 4/4 v4] kernel/fork.c: memory hotplug updates max_threads |
| |
On 02/23, Heinrich Schuchardt wrote: > > On 23.02.2015 21:54, Oleg Nesterov wrote: > > > >> And it changes the swapper/0's rlimits. This is pointless after we fork > >> /sbin/init. > > So should writing to /proc/sys/max_threads update the limits of all > processes?
Why?
No, I think it should not touch rlimits at all.
> >> It seems to me these patches need some cleanups. Plus I am not sure the > >> kernel should update max_threads automatically, we have the "threads-max" > >> sysctl. > > The idea in the original version of fork_init is that max_threads should > be chosen such that the memory needed to store the meta-information of > max_threads threads should only be 1/8th of the total memory. > > Somebody adding or removing memory will not necessarily update > /proc/sys/kernel/threads-max. > > This means that if I remove 90 % of the memory I get to a situation > where max_threads allows so many threads to be created that the > meta-information occupies all memory. > > With patch 4/4 max_threads is automatically reduced in this case.
I understand. But I think that if you remove 90 % of the memory you can also update /proc/sys/kernel/threads-max.
And, suppose that admin specially limited max_threads, then you add more memory. Should the kernel bump the limit silently?
And if hotplug should update max_threads, why it doesn't update, say, files_stat.max_files?
IOW, I do not think that kernel should control max_threads after boot. But I won't really argue. Just this looks a bit strange to me.
Oleg.
| |