cvs commit: src ObsoleteFiles.inc UPDATING src/bin/sh
miscbltin.c
src/etc login.conf src/etc/defaults devfs.rules src/lib/libc/stdlib
Makefile.inc Symbol.map grantpt.3 ptsname.3 ptsname.c src/lib/libc/sys
Makefile.inc Symbol.map getrlimit.2 ...
Robert Watson
rwatson at FreeBSD.org
Wed Aug 20 08:38:45 UTC 2008
On Wed, 20 Aug 2008, Ed Schouten wrote:
> SVN rev 181905 on 2008-08-20 08:31:58Z by ed
>
> Integrate the new MPSAFE TTY layer to the FreeBSD operating system.
>
> The last half year I've been working on a replacement TTY layer for the
> FreeBSD kernel. The new TTY layer was designed to improve the following:
Many congratulations on a commit that was a long time in coming! We all
really appreciate your picking this up and not only dealing with the
long-standing problem of a lack of MPSAFE tty support, but also in adding new
features such as revised pty code, etc!
Now to exercise it a bit and keep you busy on bizarre tty behavior quirks for
months :-).
Robert N M Watson
Computer Laboratory
University of Cambridge
>
> - Improved driver model:
>
> The old TTY layer has a driver model that is not abstract enough to
> make it friendly to use. A good example is the output path, where the
> device drivers directly access the output buffers. This means that an
> in-kernel PPP implementation must always convert network buffers into
> TTY buffers.
>
> If a PPP implementation would be built on top of the new TTY layer
> (still needs a hooks layer, though), it would allow the PPP
> implementation to directly hand the data to the TTY driver.
>
> - Improved hotplugging:
>
> With the old TTY layer, it isn't entirely safe to destroy TTY's from
> the system. This implementation has a two-step destructing design,
> where the driver first abandons the TTY. After all threads have left
> the TTY, the TTY layer calls a routine in the driver, which can be
> used to free resources (unit numbers, etc).
>
> The pts(4) driver also implements this feature, which means
> posix_openpt() will now return PTY's that are created on the fly.
>
> - Improved performance:
>
> One of the major improvements is the per-TTY mutex, which is expected
> to improve scalability when compared to the old Giant locking.
> Another change is the unbuffered copying to userspace, which is both
> used on TTY device nodes and PTY masters.
>
> Upgrading should be quite straightforward. Unlike previous versions,
> existing kernel configuration files do not need to be changed, except
> when they reference device drivers that are listed in UPDATING.
>
> Obtained from: //depot/projects/mpsafetty/...
> Approved by: philip (ex-mentor)
> Discussed: on the lists, at BSDCan, at the DevSummit
> Sponsored by: Snow B.V., the Netherlands
> dcons(4) fixed by: kan
>
> Revision Changes Path
> 1.155 +3 -0 src/ObsoleteFiles.inc
> 1.539 +19 -0 src/UPDATING
> 1.36 +4 -1 src/bin/sh/miscbltin.c
> 1.6 +2 -1 src/etc/defaults/devfs.rules
> 1.52 +1 -0 src/etc/login.conf
> 1.55 +6 -6 src/lib/libc/stdlib/Makefile.inc
> 1.8 +0 -1 src/lib/libc/stdlib/Symbol.map
> 1.4 +0 -225 src/lib/libc/stdlib/grantpt.3 (dead)
> 1.1 +160 -0 src/lib/libc/stdlib/ptsname.3 (new)
> 1.1 +95 -0 src/lib/libc/stdlib/ptsname.c (new)
> 1.137 +2 -2 src/lib/libc/sys/Makefile.inc
> 1.18 +1 -0 src/lib/libc/sys/Symbol.map
> 1.25 +3 -1 src/lib/libc/sys/getrlimit.2
> 1.1 +135 -0 src/lib/libc/sys/posix_openpt.2 (new)
> 1.62 +3 -2 src/lib/libutil/login.conf.5
> 1.27 +13 -12 src/lib/libutil/login_class.c
> 1.426 +1 -0 src/share/man/man4/Makefile
> 1.57 +7 -1 src/share/man/man4/ddb.4
> 1.1 +181 -0 src/share/man/man4/pts.4 (new)
> 1.20 +48 -201 src/share/man/man4/pty.4
> 1.34 +20 -4 src/share/man/man4/termios.4
> 1.507 +1 -1 src/sys/amd64/conf/GENERIC
> 1.14 +1 -0 src/sys/bsm/audit_kevents.h
> 1.86 +2 -1 src/sys/compat/freebsd32/freebsd32_syscall.h
> 1.77 +1 -0 src/sys/compat/freebsd32/freebsd32_syscalls.c
> 1.87 +1 -0 src/sys/compat/freebsd32/freebsd32_sysent.c
> 1.102 +1 -0 src/sys/compat/freebsd32/syscalls.master
> 1.142 +7 -2 src/sys/compat/linux/linux_ioctl.c
> 1.93 +11 -1 src/sys/compat/linux/linux_stats.c
> 1.1504 +1 -8 src/sys/conf/NOTES
> 1.1331 +5 -3 src/sys/conf/files
> 1.636 +1 -1 src/sys/conf/options
> 1.7 +1 -1 src/sys/dev/dcons/dcons.h
> 1.23 +48 -345 src/sys/dev/dcons/dcons_os.c
> 1.41 +158 -252 src/sys/dev/nmdm/nmdm.c
> 1.40 +32 -111 src/sys/dev/ofw/ofw_console.c
> 1.21 +3 -4 src/sys/dev/syscons/schistory.c
> 1.43 +2 -3 src/sys/dev/syscons/scmouse.c
> 1.24 +1 -1 src/sys/dev/syscons/scterm-sc.c
> 1.26 +4 -8 src/sys/dev/syscons/scvesactl.c
> 1.40 +6 -12 src/sys/dev/syscons/scvidctl.c
> 1.461 +156 -171 src/sys/dev/syscons/syscons.c
> 1.91 +15 -9 src/sys/dev/syscons/syscons.h
> 1.31 +32 -103 src/sys/dev/syscons/sysmouse.c
> 1.25 +1 -2 src/sys/dev/uart/uart_core.c
> 1.30 +72 -93 src/sys/dev/uart/uart_tty.c
> 1.67 +131 -203 src/sys/dev/usb/ucom.c
> 1.11 +5 -3 src/sys/dev/usb/ucomvar.h
> 1.39 +16 -11 src/sys/dev/usb/uftdi.c
> 1.72 +2 -2 src/sys/dev/usb/umodem.c
> 1.165 +0 -3 src/sys/fs/devfs/devfs_vnops.c
> 1.497 +1 -1 src/sys/i386/conf/GENERIC
> 1.10 +1 -1 src/sys/i386/conf/XBOX
> 1.32 +17 -2 src/sys/i386/ibcs2/ibcs2_ioctl.c
> 1.99 +1 -1 src/sys/ia64/conf/GENERIC
> 1.26 +1 -1 src/sys/ia64/conf/SKI
> 1.31 +40 -100 src/sys/ia64/ia64/ssc.c
> 1.294 +1 -1 src/sys/kern/init_main.c
> 1.241 +2 -1 src/sys/kern/init_sysent.c
> 1.99 +3 -3 src/sys/kern/kern_acct.c
> 1.220 +0 -11 src/sys/kern/kern_conf.c
> 1.337 +12 -0 src/sys/kern/kern_descrip.c
> 1.312 +28 -34 src/sys/kern/kern_exit.c
> 1.266 +30 -27 src/sys/kern/kern_proc.c
> 1.190 +25 -0 src/sys/kern/kern_resource.c
> 1.131 +14 -10 src/sys/kern/subr_prf.c
> 1.225 +2 -1 src/sys/kern/syscalls.c
> 1.244 +1 -0 src/sys/kern/syscalls.master
> 1.25 +27 -0 src/sys/kern/systrace_args.c
> 1.282 +1374 -2852 src/sys/kern/tty.c
> 1.40 +32 -23 src/sys/kern/tty_compat.c
> 1.25 +0 -205 src/sys/kern/tty_conf.c (dead)
> 1.145 +12 -3 src/sys/kern/tty_cons.c
> 1.2 +4 -10 src/sys/kern/tty_info.c
> 1.1 +502 -0 src/sys/kern/tty_inq.c (new)
> 1.1 +365 -0 src/sys/kern/tty_outq.c (new)
> 1.19 +516 -783 src/sys/kern/tty_pts.c
> 1.160 +60 -752 src/sys/kern/tty_pty.c
> 1.1 +1131 -0 src/sys/kern/tty_ttydisc.c (new)
> 1.4 +0 -9 src/sys/modules/nmdm/Makefile
> 1.4 +1 -6 src/sys/modules/rc/Makefile
> 1.18 +1 -1 src/sys/pc98/cbus/scterm-sck.c
> 1.309 +2 -2 src/sys/pc98/conf/GENERIC
> 1.93 +1 -1 src/sys/pc98/conf/NOTES
> 1.82 +1 -1 src/sys/powerpc/conf/GENERIC
> 1.140 +1 -1 src/sys/sparc64/conf/GENERIC
> 1.21 +1 -1 src/sys/sun4v/conf/GENERIC
> 1.9 +49 -113 src/sys/sun4v/sun4v/hvcons.c
> 1.243 +0 -3 src/sys/sys/conf.h
> 1.81 +1 -0 src/sys/sys/file.h
> 1.193 +0 -141 src/sys/sys/linedisc.h (dead)
> 1.363 +1 -1 src/sys/sys/param.h
> 1.518 +4 -5 src/sys/sys/proc.h
> 1.33 +2 -1 src/sys/sys/resource.h
> 1.54 +2 -0 src/sys/sys/resourcevar.h
> 1.222 +3 -2 src/sys/sys/syscall.h
> 1.177 +3 -2 src/sys/sys/syscall.mk
> 1.226 +6 -1 src/sys/sys/sysproto.h
> 1.23 +13 -6 src/sys/sys/termios.h
> 1.104 +5 -18 src/sys/sys/tty.h
> 1.28 +2 -1 src/sys/sys/ttycom.h
> 1.21 +1 -0 src/sys/sys/ttydefaults.h
> 1.1 +158 -0 src/sys/sys/ttydevsw.h (new)
> 1.1 +105 -0 src/sys/sys/ttydisc.h (new)
> 1.1 +157 -0 src/sys/sys/ttyqueue.h (new)
> 1.77 +1 -0 src/sys/sys/user.h
> 1.70 +52 -0 src/usr.bin/fstat/fstat.c
> 1.6 +3 -1 src/usr.bin/procstat/procstat.1
> 1.7 +5 -0 src/usr.bin/procstat/procstat_files.c
> 1.50 +39 -76 src/usr.sbin/pstat/pstat.8
> 1.105 +53 -87 src/usr.sbin/pstat/pstat.c
>
More information about the cvs-src
mailing list