How to enable more than 256 pty's?

Erik Trulsson ertr1013 at student.uu.se
Tue Oct 2 05:09:49 PDT 2007


On Tue, Oct 02, 2007 at 02:05:03PM +0200, Dag-Erling Smørgrav wrote:
> "Steven Hartland" <killing at multiplay.co.uk> writes:
> > Any one got any pointers on this, the machine we running this app on is over
> > 90% idle so I really don't want to have to install a second machine just to
> > workaround a limit on the number of pty's, surely there's a way to increase
> > this?
> 
> You need to change the way ptys are named in pty_create_slave() and
> pty_clone() in sys/kern/tty_pty.c.  Just changing names won't help as
> the sequence is also hardcoded in pty_clone().
> 
> You also need to change grantpt(), openpty() and any other userland code
> which has hardcoded knowledge of the naming scheme:
> 
> des at ds4 ~% gfs pqrsPQRS
> src/sys/kern/tty_pty.c: static char *names = "pqrsPQRS";
> src/sys/kern/tty_pty.c:  * pts == /dev/tty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
> src/sys/kern/tty_pty.c:  * ptc == /dev/pty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
> src/contrib/telnet/telnetd/sys_term.c:  for (cp = "pqrsPQRS"; *cp; cp++) {
> src/usr.sbin/ac/ac.c:                               strchr("pqrsPQRS", usr.ut_line[3]) != 0 ||
> src/lib/libutil/pty.c:  for (cp1 = "pqrsPQRS"; *cp1; cp1++) {
> src/lib/libc/stdlib/grantpt.c: #define  PT_DEV1         "pqrsPQRS"
> 
> Alternatively, set kern.pts.enable to 1, and find and fix the
> hang-on-close bug in the pts code (if it hasn't been fixed already)

This last option is only available if you are running 7-CURRENT though.
The pts code is not in 6-STABLE (or older.)


-- 
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se


More information about the freebsd-hackers mailing list