Comment 0 for bug 1866149

Revision history for this message
David Monro (davidm-ub) wrote :

I'm not completely sure which package to log this against.

I'm running the kvm focal minimal cloud image from 20200302. I noticed on boot that there was an error complaining that systemd-systemctl couldn't update pid_max to the value it wanted:

systemd-sysctl[117]: Couldn't write '4194304' to 'kernel/pid_max': Invalid argument

Digging into it a bit more, this comes from /usr/lib/sysctl.d/50-pid-max.conf:
# 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

However, the linux-image-kvm kernel is compiled with
CONFIG_BASE_SMALL=1

and this triggers the following code in include/linux/threads.h

#define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \
 (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT))

which means that if CONFIG_BASE_SMALL is set we get a maximum limit of PAGE_SIZE * 8, which on x86 would be 32768.

As a workaround I can override it with a file in /etc/sysctl.d/ but this shouldn't be needed.

I really don't know if CONFIG_BASE_SMALL makes any sense on x86 cloud images, they really aren't small machines in the scheme of things!

Cheers

David