From owner-freebsd-current@FreeBSD.ORG Sat Mar 17 22:38:27 2007 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DCAE416A402 for ; Sat, 17 Mar 2007 22:38:27 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id A6D0213C458 for ; Sat, 17 Mar 2007 22:38:27 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [10.0.0.1] (63-226-247-187.tukw.qwest.net [63.226.247.187]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id l2HMcO5t019745 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO) for ; Sat, 17 Mar 2007 17:38:26 -0500 (EST) (envelope-from jroberson@chesapeake.net) Date: Sat, 17 Mar 2007 14:38:15 -0800 (PST) From: Jeff Roberson X-X-Sender: jroberson@10.0.0.1 To: current@freebsd.org Message-ID: <20070317143500.J560@10.0.0.1> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Subject: HEADS UP: nfs server locking. X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Mar 2007 22:38:27 -0000 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 To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@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.h