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
8*d56b699dSBjorn Helgaasand their indices allocated in one mount are independent from ptys
9*d56b699dSBjorn Helgaasand their indices 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