Mauro Carvalho Chehab | 01478b8 | 2020-04-27 23:17:02 +0200 | [diff] [blame] | 1 | .. SPDX-License-Identifier: GPL-2.0 |
| 2 | |
| 3 | ===================== |
| 4 | The Devpts Filesystem |
| 5 | ===================== |
| 6 | |
| 7 | Each mount of the devpts filesystem is now distinct such that ptys |
| 8 | and their indicies allocated in one mount are independent from ptys |
| 9 | and their indicies in all other mounts. |
| 10 | |
| 11 | All mounts of the devpts filesystem now create a ``/dev/pts/ptmx`` node |
| 12 | with permissions ``0000``. |
| 13 | |
| 14 | To retain backwards compatibility the a ptmx device node (aka any node |
| 15 | created with ``mknod name c 5 2``) when opened will look for an instance |
| 16 | of devpts under the name ``pts`` in the same directory as the ptmx device |
| 17 | node. |
| 18 | |
| 19 | As an option instead of placing a ``/dev/ptmx`` device node at ``/dev/ptmx`` |
| 20 | it is possible to place a symlink to ``/dev/pts/ptmx`` at ``/dev/ptmx`` or |
| 21 | to bind mount ``/dev/ptx/ptmx`` to ``/dev/ptmx``. If you opt for using |
| 22 | the devpts filesystem in this manner devpts should be mounted with |
| 23 | the ``ptmxmode=0666``, or ``chmod 0666 /dev/pts/ptmx`` should be called. |
| 24 | |
| 25 | Total count of pty pairs in all instances is limited by sysctls:: |
| 26 | |
| 27 | kernel.pty.max = 4096 - global limit |
| 28 | kernel.pty.reserve = 1024 - reserved for filesystems mounted from the initial mount namespace |
| 29 | kernel.pty.nr - current count of ptys |
| 30 | |
| 31 | Per-instance limit could be set by adding mount option ``max=<count>``. |
| 32 | |
| 33 | This feature was added in kernel 3.4 together with |
| 34 | ``sysctl kernel.pty.reserve``. |
| 35 | |
| 36 | In kernels older than 3.4 sysctl ``kernel.pty.max`` works as per-instance limit. |