101478b83SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
201478b83SMauro Carvalho Chehab
301478b83SMauro Carvalho Chehab=====================
401478b83SMauro Carvalho ChehabThe Devpts Filesystem
501478b83SMauro Carvalho Chehab=====================
601478b83SMauro Carvalho Chehab
701478b83SMauro Carvalho ChehabEach mount of the devpts filesystem is now distinct such that ptys
801478b83SMauro Carvalho Chehaband their indicies allocated in one mount are independent from ptys
901478b83SMauro Carvalho Chehaband their indicies in all other mounts.
1001478b83SMauro Carvalho Chehab
1101478b83SMauro Carvalho ChehabAll mounts of the devpts filesystem now create a ``/dev/pts/ptmx`` node
1201478b83SMauro Carvalho Chehabwith permissions ``0000``.
1301478b83SMauro Carvalho Chehab
1401478b83SMauro Carvalho ChehabTo retain backwards compatibility the a ptmx device node (aka any node
1501478b83SMauro Carvalho Chehabcreated with ``mknod name c 5 2``) when opened will look for an instance
1601478b83SMauro Carvalho Chehabof devpts under the name ``pts`` in the same directory as the ptmx device
1701478b83SMauro Carvalho Chehabnode.
1801478b83SMauro Carvalho Chehab
1901478b83SMauro Carvalho ChehabAs an option instead of placing a ``/dev/ptmx`` device node at ``/dev/ptmx``
2001478b83SMauro Carvalho Chehabit is possible to place a symlink to ``/dev/pts/ptmx`` at ``/dev/ptmx`` or
2101478b83SMauro Carvalho Chehabto bind mount ``/dev/ptx/ptmx`` to ``/dev/ptmx``.  If you opt for using
2201478b83SMauro Carvalho Chehabthe devpts filesystem in this manner devpts should be mounted with
2301478b83SMauro Carvalho Chehabthe ``ptmxmode=0666``, or ``chmod 0666 /dev/pts/ptmx`` should be called.
2401478b83SMauro Carvalho Chehab
2501478b83SMauro Carvalho ChehabTotal count of pty pairs in all instances is limited by sysctls::
2601478b83SMauro Carvalho Chehab
2701478b83SMauro Carvalho Chehab    kernel.pty.max = 4096	- global limit
2801478b83SMauro Carvalho Chehab    kernel.pty.reserve = 1024	- reserved for filesystems mounted from the initial mount namespace
2901478b83SMauro Carvalho Chehab    kernel.pty.nr		- current count of ptys
3001478b83SMauro Carvalho Chehab
3101478b83SMauro Carvalho ChehabPer-instance limit could be set by adding mount option ``max=<count>``.
3201478b83SMauro Carvalho Chehab
3301478b83SMauro Carvalho ChehabThis feature was added in kernel 3.4 together with
3401478b83SMauro Carvalho Chehab``sysctl kernel.pty.reserve``.
3501478b83SMauro Carvalho Chehab
3601478b83SMauro Carvalho ChehabIn kernels older than 3.4 sysctl ``kernel.pty.max`` works as per-instance limit.
37