freebsd-skq/usr.sbin
Doug Rabson dfdcada31e Add the new kernel-mode NFS Lock Manager. To use it instead of the
user-mode lock manager, build a kernel with the NFSLOCKD option and
add '-k' to 'rpc_lockd_flags' in rc.conf.

Highlights include:

* Thread-safe kernel RPC client - many threads can use the same RPC
  client handle safely with replies being de-multiplexed at the socket
  upcall (typically driven directly by the NIC interrupt) and handed
  off to whichever thread matches the reply. For UDP sockets, many RPC
  clients can share the same socket. This allows the use of a single
  privileged UDP port number to talk to an arbitrary number of remote
  hosts.

* Single-threaded kernel RPC server. Adding support for multi-threaded
  server would be relatively straightforward and would follow
  approximately the Solaris KPI. A single thread should be sufficient
  for the NLM since it should rarely block in normal operation.

* Kernel mode NLM server supporting cancel requests and granted
  callbacks. I've tested the NLM server reasonably extensively - it
  passes both my own tests and the NFS Connectathon locking tests
  running on Solaris, Mac OS X and Ubuntu Linux.

* Userland NLM client supported. While the NLM server doesn't have
  support for the local NFS client's locking needs, it does have to
  field async replies and granted callbacks from remote NLMs that the
  local client has contacted. We relay these replies to the userland
  rpc.lockd over a local domain RPC socket.

* Robust deadlock detection for the local lock manager. In particular
  it will detect deadlocks caused by a lock request that covers more
  than one blocking request. As required by the NLM protocol, all
  deadlock detection happens synchronously - a user is guaranteed that
  if a lock request isn't rejected immediately, the lock will
  eventually be granted. The old system allowed for a 'deferred
  deadlock' condition where a blocked lock request could wake up and
  find that some other deadlock-causing lock owner had beaten them to
  the lock.

* Since both local and remote locks are managed by the same kernel
  locking code, local and remote processes can safely use file locks
  for mutual exclusion. Local processes have no fairness advantage
  compared to remote processes when contending to lock a region that
  has just been unlocked - the local lock manager enforces a strict
  first-come first-served model for both local and remote lockers.

Sponsored by:	Isilon Systems
PR:		95247 107555 115524 116679
MFC after:	2 weeks
2008-03-26 15:23:12 +00:00
..
ac
accton
acpi These are the things that the tinderbox has problems with because it 2007-11-20 02:07:30 +00:00
adduser In the description of the password field, -w was meant, not the 2008-03-16 21:36:05 +00:00
amd Teach Amd how to unmount. 2007-12-05 16:50:48 +00:00
ancontrol
apm
apmd getopt(3) returns -1, not EOF when out of args. 2007-02-05 07:35:23 +00:00
arlcontrol
arp Spell "blackhole" correctly and fix one grammar nit. 2008-03-24 22:57:55 +00:00
asf Make grammar a bit more consistent in this document. 2006-12-20 06:21:51 +00:00
atm
audit
auditd
auditreduce auditreduce now requires OpenBSM's config/config.h, so add that to the 2006-09-25 11:56:20 +00:00
authpf Do not bypass WARNS machinery by hadcoding -Werror into CFLAGS. 2006-09-21 18:16:22 +00:00
bluetooth Add mandatory "security description" SDP parameter to the PANU profile 2008-03-19 00:06:30 +00:00
boot0cfg "-b /boot/mbr" is redundant, /boot/mbr is the default boot code for fdisk(8). 2007-06-07 07:43:04 +00:00
boot98cfg Correct typo in usage message. 2007-12-19 03:31:44 +00:00
bootparamd Fix bootparamd on 64 bit platforms - at least amd64 was broken due to the 2008-01-30 13:48:37 +00:00
bsnmpd Keep the snmp_bridge(3) module up to date with if_bridge(4) and add an 2007-08-08 19:27:50 +00:00
btxld
burncd
cdcontrol getopt(3) returns -1, not EOF. 2008-02-19 07:09:19 +00:00
chkgrp
chown
chroot
ckdist Fix markup and change some layout; no content changes. 2006-12-27 13:52:57 +00:00
clear_locks Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
config Honour the logical current working directory ($PWD) when using config's 2008-01-08 21:10:13 +00:00
cron Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
crunch Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
ctm
cxgbtool fix include names 2007-03-15 04:09:40 +00:00
daemon Unbreak rev 1.7's getopt usage. The -f switch does not take an argument. 2007-04-19 16:43:30 +00:00
dconschat Set the default escape character as described in the manpage of dconschat(8). 2007-07-12 13:08:00 +00:00
devinfo Bump up the limit for when to print the resources for a given resource 2007-10-27 13:06:15 +00:00
digictl
diskinfo Print provider's ident when in verbose mode. 2007-05-06 00:25:21 +00:00
dnssec-keygen Update bmake glue for the BIND 9.4.1 import. 2007-06-02 23:19:58 +00:00
dnssec-signzone Update bmake glue for the BIND 9.4.1 import. 2007-06-02 23:19:58 +00:00
editmap
edquota Document that quotas must be turned off on a file system and 2007-02-04 14:26:01 +00:00
eeprom Flush my typo fix queue for this directory. 2006-12-05 23:20:14 +00:00
extattr
extattrctl
faithd Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
fdcontrol Force the use of the tbl(1) preprocessor. 2006-10-25 10:44:59 +00:00
fdformat Fix a nit noticed during translation. 2007-02-28 10:24:34 +00:00
fdread Remove unused variables. 2006-07-20 09:38:46 +00:00
fdwrite
fifolog Fix two bugs introduced in conversion to FreeBSD source tree: 2008-03-19 10:56:51 +00:00
flowctl
freebsd-update Adjust recognize-shared-libraries regex to avoid matching symlinks to 2008-03-25 11:31:16 +00:00
ftp-proxy Link pf 4.1 to the build: 2007-07-03 12:46:08 +00:00
fwcontrol - add '-f' option to force root node. 2008-03-05 01:30:48 +00:00
getfmac
getpmac
gstat When the ms/req fields exceed 1 second, drop the fractions to fit more digits. 2008-01-06 12:12:44 +00:00
i4b I4B header files are now installed in include/i4b/ and no longer 2007-07-06 07:21:56 +00:00
ifmcstat mdoc fix: Add missing .El request 2007-10-30 16:04:23 +00:00
inetd o inetd(8) requires wait/nowait column in inetd.conf for 2008-01-12 21:09:48 +00:00
iostat Repeat iostat header after rows-3 instead of a hardcoded 20. 2008-01-22 11:18:51 +00:00
ip6addrctl Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
ipfwpcap Add a signal handler for SIGINT to make sure that the PID file 2007-10-12 14:57:39 +00:00
IPXrouted Use printf formats which match the variable types without casts so we 2007-11-17 23:09:39 +00:00
jail Bump date. 2007-04-05 21:17:52 +00:00
jexec Markup fixes. 2006-09-29 17:57:04 +00:00
jls
kbdcontrol Some clarifications to make keyboard configuration under syscons. 2008-01-29 18:28:50 +00:00
kbdmap Output keymap choice to stderr so it is easier to parse for apps chained to 2007-08-27 21:56:42 +00:00
kernbb
keyserv Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
kgmon Correct a typo 2006-06-29 09:18:16 +00:00
kgzip
kldxref These are the things that the tinderbox has problems with because it 2007-11-20 02:07:30 +00:00
lastlogin
lmcconfig Style. 2006-09-01 09:24:28 +00:00
lpr Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
lptcontrol
mailstats
mailwrapper Markup fixes. 2006-09-29 17:57:04 +00:00
makemap
manctl
memcontrol
mergemaster In the following scenario: 2007-12-21 19:34:26 +00:00
mixer mixer(8) is WARNS=6 clean since 1.25. 2008-03-16 08:06:36 +00:00
mld6query These IPv6-only tools have no explicit dependency on the INET6 macro. 2006-07-27 15:31:13 +00:00
mlxcontrol
mount_nwfs Use sysctlbyname() instead of sysctl 2006-05-11 17:23:57 +00:00
mount_portalfs Decrease to WARNS=3. 2007-01-20 23:24:11 +00:00
mount_smbfs
mountd Remove hacks which filter out MNT_ROOTFS. 2008-03-05 07:55:07 +00:00
moused Use intmax_t instead of long when casting time_t. 2008-03-07 00:01:24 +00:00
mptable
mtest Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
mtree Add the mtree.5 manpage. I'll come back soon and 2008-01-01 06:15:57 +00:00
named Update bmake glue for the BIND 9.4.1 import. 2007-06-02 23:19:58 +00:00
named-checkconf Update bmake glue for the BIND 9.4.1 import. 2007-06-02 23:19:58 +00:00
named-checkzone Update bmake glue for the BIND 9.4.1 import. 2007-06-02 23:19:58 +00:00
named.reload
ndiscvt Remove ndisapi.9 Xref. 2006-10-10 07:19:30 +00:00
ndp Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
newsyslog Fix two typos. 2008-01-30 22:11:59 +00:00
nfsd
ngctl Tweak the handling of "WITHOUT_LIBPTHREAD". Also remove the accidental 2007-10-09 23:31:11 +00:00
nghook
nologin Update nologin(5) to match the modern reality of login.conf(5) and PAM. 2007-05-10 11:22:24 +00:00
nscd These are the things that the tinderbox has problems with because it 2007-11-20 02:07:30 +00:00
ntp Delete description of non-existent options: "-4" and "-6". 2007-06-12 13:28:55 +00:00
nvram Revise markup. 2006-09-30 19:07:03 +00:00
ofwdump De-sparc64-ify (now that it's also installed on PowerPC). 2008-01-31 14:58:55 +00:00
pccard Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
pciconf Include agpreg.h from it's new location. 2007-11-13 01:30:40 +00:00
periodic - The weekly periodic runs occur on Saturday mornings, not on Sunday mornings 2007-09-07 21:54:45 +00:00
pkg_install Sync list of directories to look for packages in to current releases 2008-02-26 14:35:01 +00:00
pmccontrol Fix pmccontrol(8) on Intel Xeon's running in 64 bit mode. 2006-02-27 14:25:32 +00:00
pmcstat Fix 'make checkdpadd'. 2008-02-22 06:25:49 +00:00
pnpinfo Remove alpha left-overs. 2006-08-22 08:03:01 +00:00
portsnap Improve conformance to the HTTP specification by using case-insensitive 2008-02-13 20:46:23 +00:00
powerd getopt(3) returns -1, not EOF. 2008-02-18 03:19:25 +00:00
ppp Update to the "new" libalias API (and thus fix world breakage). 2008-03-12 14:34:34 +00:00
pppctl
pppd Add missing <stdlib.h> for exit() 2007-11-07 10:57:35 +00:00
pppstats Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
praliases
praudit
procctl
pstat Significantly reduce the memory leak as noted in BUGS section for 2007-07-04 00:00:41 +00:00
pw Add the groupmod '-d' option to pw to allow the deletion of existing users 2008-02-23 01:25:22 +00:00
pwd_mkdb
quot o Check we have a non-NULL pointer to a super block before dereference it. 2006-09-30 07:34:20 +00:00
quotaon If two files systems, /a and /b are marked as having quotas enabled 2007-02-04 06:33:15 +00:00
rarpd
raycontrol
repquota Change the header to indicate which type of id is being displayed, 2007-09-19 01:10:31 +00:00
rip6query Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
rmt
rndc Update bmake glue for the BIND 9.4.1 import. 2007-06-02 23:19:58 +00:00
rndc-confgen Update bmake glue for the BIND 9.4.1 import. 2007-06-02 23:19:58 +00:00
route6d Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
rpc.lockd Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
rpc.statd Check the correct variables for malloc failures. 2007-11-07 10:21:36 +00:00
rpc.umntall
rpc.yppasswdd These are the things that the tinderbox has problems with because it 2007-11-20 02:07:30 +00:00
rpc.ypupdated Kill blank line at EOF. 2007-02-15 02:45:14 +00:00
rpc.ypxfrd o There is no securenets(5) man page, refer to ypserv(8). 2006-11-02 07:36:33 +00:00
rpcbind No network addresses in the system isn't a good excuse 2008-02-14 20:12:23 +00:00
rrenumd Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
rtadvd Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
rtprio
rtsold Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
rwhod
sa Ensure that the -s flag truncates the accounting data. 2008-02-21 07:12:56 +00:00
sade Adjust HISTORY. 2007-10-12 18:16:35 +00:00
sendmail This FFR is no longer needed in sendmail 8.14 2007-04-09 01:45:52 +00:00
setfmac An average consumer of fts(3) that avoids keeping pointers to old 2008-01-29 17:50:29 +00:00
setpmac
sicontrol
sliplogin
slstat
smbmsg Force the use of the tbl(1) preprocessor. 2006-10-25 10:44:59 +00:00
snapinfo Imagine a situation where: 2007-03-16 12:36:54 +00:00
spkrtest
spray
sysinstall Fix an indentation. 2008-01-31 16:58:07 +00:00
syslogd Two no-op fixes to improve corretness of syslogd code: 2008-02-20 21:54:41 +00:00
tcpdchk Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00
tcpdmatch Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00
tcpdrop Normalize usage output. 2007-10-31 13:49:20 +00:00
tcpdump Update for tcpdump 3.9.8 2007-10-16 02:32:44 +00:00
timed Typo fix. 2008-02-11 08:12:58 +00:00
traceroute Add AS lookup functionality. On each hop we query a whois server to 2008-02-20 23:29:53 +00:00
traceroute6 Give traceroute6 the ability to traceroute with packets with no 2008-02-10 21:06:38 +00:00
trpt Obey MK_INET6_SUPPORT. 2006-07-27 14:52:12 +00:00
tzsetup
ugidfw Add some new options to mac_bsdestended. We can now match on: 2006-04-23 17:06:18 +00:00
usbdevs
vidcontrol Tweak some wording and markup. 2006-12-22 23:23:59 +00:00
vipw
watch Allow watch(8) to use more than 10 snp* devices. This limitation was purely 2008-01-30 13:55:32 +00:00
watchdogd Don't exit from watchdogd on receiving a signal if we cannot stop the watchdog. 2006-12-15 22:47:36 +00:00
wlandebug Hook wlandebug up to the build. 2007-07-28 00:12:21 +00:00
wlconfig
wpa enable syslog support and add -s option to the man page 2008-03-24 20:19:20 +00:00
yp_mkdb
ypbind
yppoll
yppush Remove unsafe use of asynchronous I/O (the SIGIO handler could cause 2006-08-16 12:58:41 +00:00
ypserv Add -P <port> option to allow binding to a specific port. 2008-02-03 17:39:37 +00:00
ypset Increase helpfulness in diagnostic message - ypbind running without -ypset or 2007-02-28 22:49:12 +00:00
zic getopt(3) returns -1, not EOF. 2008-02-19 07:09:19 +00:00
zzz
Makefile Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
Makefile.inc