]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sysctl: let's by default increase the numeric PID range from 2^16 to 2^22 12226/head
authorLennart Poettering <lennart@poettering.net>
Fri, 5 Apr 2019 13:38:16 +0000 (15:38 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 9 Apr 2019 09:22:52 +0000 (11:22 +0200)
This should PID collisions a tiny bit less likely, and thus improve
security and robustness.

2^22 isn't particularly a lot either, but it's the current kernel
limitation.

Bumping this limit was suggested by Linus himself:

https://lwn.net/ml/linux-kernel/CAHk-=wiZ40LVjnXSi9iHLE_-ZBsWFGCgdmNiYZUXn1-V5YBg2g@mail.gmail.com/

Let's experiment with this in systemd upstream first. Downstreams and
users can after all still comment this easily.

Besides compat concern the most often heard issue with such high PIDs is
usability, since they are potentially hard to type. I am not entirely sure though
whether 4194304 (as largest new PID) is that much worse to type or to
copy than 65563.

This should also simplify management of per system tasks limits as by
this move the sysctl /proc/sys/kernel/threads-max becomes the primary
knob to control how many processes to have in parallel.

TODO
sysctl.d/50-default.conf

diff --git a/TODO b/TODO
index 663e4fedd8929b2fcaefab13d2a9b825c799c43a..87c4355355f0bbb29e59239c669e0b21b9065ffe 100644 (file)
--- a/TODO
+++ b/TODO
@@ -904,8 +904,6 @@ Features:
 
 * support crash reporting operation modes (https://live.gnome.org/GnomeOS/Design/Whiteboards/ProblemReporting)
 
-* default to actual 32-bit PIDs, via /proc/sys/kernel/pid_max
-
 * be able to specify a forced restart of service A where service B depends on, in case B
   needs to be auto-respawned?
 
index 27084f62424bf2cf3407c7a1a6bcc6bed2aa15b9..ace2302589f486d4febc2259dfab078c4b635148 100644 (file)
@@ -40,3 +40,7 @@ fs.protected_symlinks = 1
 # Enable regular file and FIFO protection
 fs.protected_regular = 1
 fs.protected_fifos = 1
+
+# Bump the numeric PID range to its maximum of 2^22 (from the in-kernel default
+# of 2^16), to make PID collisions less likely.
+kernel.pid_max = 4194304