summaryrefslogtreecommitdiff
path: root/sys/nfs/nfs_socket.c
Commit message (Collapse)AuthorAgeFilesLines
...
* This fixes a problem with the nfs socket handling code which happensDoug Rabson1996-10-111-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | if a single process is performing a large number of requests (in this case writing a large file). The writing process could monopolise the recieve lock and prevent any other processes from recieving their replies. It also adds a new sysctl variable 'vfs.nfs.dwrite' which controls the behaviour which originally pointed out the problem. When a process writes to a file over NFS, it usually arranges for another process (the 'iod') to perform the request. If no iods are available, then it turns the write into a 'delayed write' which is later picked up by the next iod to do a write request for that file. This can cause that particular iod to do a disproportionate number of requests from a single process which can harm performance on some NFS servers. The alternative is to perform the write synchronously in the context of the original writing process if no iod is avaiable for asynchronous writing. The 'delayed write' behaviour is selected when vfs.nfs.dwrite=1 and the non-delayed behaviour is selected when vfs.nfs.dwrite=0. The default is vfs.nfs.dwrite=1; if many people tell me that performance is better if vfs.nfs.dwrite=0 then I will change the default. Submitted by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp> Notes: svn path=/head/; revision=18866
* Modify the kernel to use the new pr_usrreqs interface rather than the oldGarrett Wollman1996-07-111-5/+6
| | | | | | | | | | | | | | | | | pr_usrreq mechanism which was poorly designed and error-prone. This commit renames pr_usrreq to pr_ousrreq so that old code which depended on it would break in an obvious manner. This commit also implements the new interface for TCP, although the old function is left as an example (#ifdef'ed out). This commit ALSO fixes a longstanding bug in the TCP timer processing (introduced by davidg on 1995/04/12) which caused timer processing on a TCB to always stop after a single timer had expired (because it misinterpreted the return value from tcp_usrreq() to indicate that the TCB had been deleted). Finally, some code related to polling has been deleted from if.c because it is not relevant t -current and doesn't look at all like my current code. Notes: svn path=/head/; revision=17096
* Fix for NFS_NOSERVERPoul-Henning Kamp1996-06-141-6/+9
| | | | | | | | | | | | | | | | | | | | | | | Poul mentioned that he thought this was some kind of timing problem, and that started me thinking. After a little poking around, I found that nfs_timer() was completely disabled when NFS_NOSERVER was #defined. But after looking at nfs_timer(), it seemed like it was something required by both the client and server code, and disabling it outright just didn't seem to make any sense. Parts of it relate only to the NFS server side code, so I disabled those, but I re-enabled the rest of the function and made sure that it would be called from nfs_init() (in nfs_subs.c). With nfs_timer() re-enabled, everything seems to work again. The only other changes I made were to #ifdef away some variable declarations in the NFS_NOSERVER case so that gcc would stop complaining about unused variables. Reviewed by: phk Submitted by: Bill Paul <wpaul@skynet.ctr.columbia.edu> Notes: svn path=/head/; revision=16365
* Kill XNS.Garrett Wollman1996-02-131-2/+4
| | | | | | | | While we're at it, fix socreate() to take a process argument. (This was supposed to get committed days ago...) Notes: svn path=/head/; revision=14093
* Add an option NFS_NOSERVER which saves 100K in the install kernel (orPoul-Henning Kamp1996-01-131-1/+14
| | | | | | | any other kernel that uses it). Use with option NFS. Notes: svn path=/head/; revision=13416
* Staticize.Poul-Henning Kamp1995-12-171-11/+15
| | | | Notes: svn path=/head/; revision=12911
* Completed function declarations and/or added prototypes and/or movedBruce Evans1995-12-031-73/+1
| | | | | | | prototypes to the right place. Notes: svn path=/head/; revision=12588
* Completed function declarations, added prototypes and removed redundantBruce Evans1995-11-211-31/+82
| | | | | | | declarations. Notes: svn path=/head/; revision=12457
* Second batch of cleanup changes.Poul-Henning Kamp1995-10-291-3/+1
| | | | | | | | This time mostly making a lot of things static and some unused variables here and there. Notes: svn path=/head/; revision=11921
* Killed redundant declarations of nfsm_rpchead().David Greenman1995-08-241-2/+1
| | | | Notes: svn path=/head/; revision=10223
* Changes to support version 3 of the NFS protocol.Doug Rabson1995-06-271-170/+348
| | | | | | | | | | | | | | | | | | | | | The version 2 support has been tested (client+server) against FreeBSD-2.0, IRIX 5.3 and FreeBSD-current (using a loopback mount). The version 2 support is stable AFAIK. The version 3 support has been tested with a loopback mount and minimally against an IRIX 5.3 server. It needs more testing and may have problems. I have patched amd to support the new variable length filehandles although it will still only use version 2 of the protocol. Before booting a kernel with these changes, nfs clients will need to at least build and install /usr/sbin/mount_nfs. Servers will need to build and install /usr/sbin/mountd. NFS diskless support is untested. Obtained from: Rick Macklem <rick@snowhite.cis.uoguelph.ca> Notes: svn path=/head/; revision=9336
* Remove trailing whitespace.Rodney W. Grimes1995-05-301-7/+7
| | | | Notes: svn path=/head/; revision=8876
* Add and move declarations to fix all of the warnings from `gcc -Wimplicit'Bruce Evans1995-03-161-3/+1
| | | | | | | | | (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones. Notes: svn path=/head/; revision=7090
* This is a bunch of changes from NetBSD. There are a couple of bug-fixes.Poul-Henning Kamp1994-10-171-26/+16
| | | | | | | | | | But mostly it is changes to use the list-maintenance macros instead of doing the pointer-gymnastics by hand. Obtained from: NetBSD Notes: svn path=/head/; revision=3664
* Prototyping and general gcc-shutting up. Gcc has one warning now which looksPoul-Henning Kamp1994-10-021-15/+26
| | | | | | | bad, I will get to it eventually, unless somebody beats me to it. Notes: svn path=/head/; revision=3305
* Added $Id$David Greenman1994-08-021-0/+1
| | | | Notes: svn path=/head/; revision=1817
* The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.Rodney W. Grimes1994-05-251-1/+16
| | | | | | | | Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman Notes: svn path=/head/; revision=1549
* BSD 4.4 Lite Kernel SourcesRodney W. Grimes1994-05-241-0/+1990
Notes: svn path=/head/; revision=1541