The nfs server has had the last vestiges of giant removed when the local filesystem doesn't require it. The nfsd locking has also been reduced in scope. These patches were tested fairly thoroughly by isilon and kris, but there is a potential for bugs. Let me know if you encounter anything unusual. Keep in mind that there are still client bugs under high load. If you attempt to break the server you more often break the client instead. Jeff ---------- Forwarded message ---------- Date: Sat, 17 Mar 2007 18:18:09 +0000 (UTC) From: Jeff Roberson <jeff_at_FreeBSD.org> To: src-committers_at_FreeBSD.org, cvs-src_at_FreeBSD.org, cvs-all_at_FreeBSD.org Subject: cvs commit: src/sys/nfsserver nfs.h nfs_serv.c nfs_srvcache.c nfs_srvsock.c nfs_srvsubs.c nfs_syscalls.c nfsm_subs.h jeff 2007-03-17 18:18:09 UTC FreeBSD src repository Modified files: sys/nfsserver nfs.h nfs_serv.c nfs_srvcache.c nfs_srvsock.c nfs_srvsubs.c nfs_syscalls.c nfsm_subs.h Log: - Turn all explicit giant acquires into conditional VFS_LOCK_GIANTs. Only ops which used namei still remained. - Implement a scheme for reducing the overhead of tracking which vops require giant by constantly reducing the number of recursive giant acquires to one, leaving us with only one vfslocked variable. - Remove all NFSD lock acquisition and release from the individual nfs ops. Careful examination has shown that they are not required. This greatly simplifies the code. Sponsored by: Isilon Systems, Inc. Discussed with: rwatson Tested by: kkenn Approved by: re Revision Changes Path 1.82 +1 -4 src/sys/nfsserver/nfs.h 1.171 +187 -554 src/sys/nfsserver/nfs_serv.c 1.44 +2 -0 src/sys/nfsserver/nfs_srvcache.c 1.102 +0 -10 src/sys/nfsserver/nfs_srvsock.c 1.146 +42 -71 src/sys/nfsserver/nfs_srvsubs.c 1.112 +2 -0 src/sys/nfsserver/nfs_syscalls.c 1.39 +2 -5 src/sys/nfsserver/nfsm_subs.hReceived on Sat Mar 17 2007 - 21:38:27 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:06 UTC