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 ...
Ed Schouten
ed at FreeBSD.org
Wed Aug 20 08:36:50 UTC 2008
ed 2008-08-20 08:31:58 UTC
FreeBSD src repository
Modified files:
. ObsoleteFiles.inc UPDATING
bin/sh miscbltin.c
etc login.conf
etc/defaults devfs.rules
lib/libc/stdlib Makefile.inc Symbol.map
lib/libc/sys Makefile.inc Symbol.map getrlimit.2
lib/libutil login.conf.5 login_class.c
share/man/man4 Makefile ddb.4 pty.4 termios.4
sys/amd64/conf GENERIC
sys/bsm audit_kevents.h
sys/compat/freebsd32 freebsd32_syscall.h freebsd32_syscalls.c
freebsd32_sysent.c syscalls.master
sys/compat/linux linux_ioctl.c linux_stats.c
sys/conf NOTES files options
sys/dev/dcons dcons.h dcons_os.c
sys/dev/nmdm nmdm.c
sys/dev/ofw ofw_console.c
sys/dev/syscons schistory.c scmouse.c scterm-sc.c
scvesactl.c scvidctl.c syscons.c
syscons.h sysmouse.c
sys/dev/uart uart_core.c uart_tty.c
sys/dev/usb ucom.c ucomvar.h uftdi.c umodem.c
sys/fs/devfs devfs_vnops.c
sys/i386/conf GENERIC XBOX
sys/i386/ibcs2 ibcs2_ioctl.c
sys/ia64/conf GENERIC SKI
sys/ia64/ia64 ssc.c
sys/kern init_main.c init_sysent.c kern_acct.c
kern_conf.c kern_descrip.c kern_exit.c
kern_proc.c kern_resource.c subr_prf.c
syscalls.c syscalls.master
systrace_args.c tty.c tty_compat.c
tty_cons.c tty_info.c tty_pts.c tty_pty.c
sys/modules/nmdm Makefile
sys/modules/rc Makefile
sys/pc98/cbus scterm-sck.c
sys/pc98/conf GENERIC NOTES
sys/powerpc/conf GENERIC
sys/sparc64/conf GENERIC
sys/sun4v/conf GENERIC
sys/sun4v/sun4v hvcons.c
sys/sys conf.h file.h param.h proc.h resource.h
resourcevar.h syscall.h syscall.mk
sysproto.h termios.h tty.h ttycom.h
ttydefaults.h user.h
usr.bin/fstat fstat.c
usr.bin/procstat procstat.1 procstat_files.c
usr.sbin/pstat pstat.8 pstat.c
Added files:
lib/libc/stdlib ptsname.3 ptsname.c
lib/libc/sys posix_openpt.2
share/man/man4 pts.4
sys/kern tty_inq.c tty_outq.c tty_ttydisc.c
sys/sys ttydevsw.h ttydisc.h ttyqueue.h
Removed files:
lib/libc/stdlib grantpt.3
sys/kern tty_conf.c
sys/sys linedisc.h
Log:
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:
- 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-all
mailing list