Why we had to virtualize "pid_max": https://jira.sw.ru/browse/PCLIN-27054

In brief: x86_64 node + x86 CT + pid_max > 65536 = non-working ps, top because 
inode numbers become greater than 32bit and 
compat_sys_getdents()->compat_filldir() fails to handle them

=> as we still can have 32bit Containers on Virtuozzo 7 (although there are no 
32bit templates in vz7 - legacy Containers, migrated from PCS6 are still possible)
=> we have to keep sysctl virtualized for now
=> applying the patch for ease of migration.

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

On 07/19/2016 02:46 PM, Cyrill Gorcunov wrote:
On Tue, Jul 19, 2016 at 02:26:06PM +0300, Pavel Tikhomirov wrote:


On 07/19/2016 02:17 PM, Cyrill Gorcunov wrote:
On Tue, Jul 19, 2016 at 02:00:20PM +0300, Pavel Tikhomirov wrote:
This member represents kernel.pid_max sysctl it is vz-specific but
lays on pid namespace. To be able to c/r from libvzctl script it is
better put pid_max in ve cgroup, these way we do not need to enter
container root pid namespace to get/set these sysctl.

Wait, kernel.pid_max is not ve-specific (see kernel/sysctl.c in
vanilla kernel). Why do we have to c/r it at all?

It is virtualized only in VZ7(see proc_dointvec_pidmax), so in mainstream it
is global sysctl unlike our case.

Acked-by: Cyrill Gorcunov <gorcu...@openvz.org>

p.s. I'm not really follow why this feature is needed in container
at all, i mean the @pid_max virtualization. Presume due to hist. reasons.
.

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to