On Thu, Jun 01, 2006 at 01:06:44AM +0300, Dmitry Pryanishnikov wrote: > > Hello! > > On Thu, 25 May 2006, Konstantin Belousov wrote: > > KASSERT(!(debug_mpsafenet == 1 && mtx_owned(&Giant)), > > ("nfssvc_nfsd(): debug.mpsafenet=1 && Giant")); > > > >from nfsserver/nfs_syscalls.c, line 570. > > > >As I understand the problem, kern/vfs_lookup.c:lookup() could > >aquire additional locks on Giant, indicating this by GIANTHELD > >flag in nd. All processing in nfsserver already goes with Giant held, > >so, I just dropped that excessive locks after return from lookup. > >System with patch applied survived smoke test (client did > >du on mounted dir, patch was generated from exported fs, etc.). > >nfsd eats no more than 25% of CPU (with INVARIANTS). > > > >Please, users who reported the problem and willing to help, > >try the patch (generated against STABLE) and give the feedback. > > Thank you very much. Your patch actually fixes "nfssvc_nfsd(): > debug.mpsafenet=1 && Giant" panic during NFS mount of server's "/usr". > Oddly enough, NFS mount of server's "/" doesn't panic the server. > My kernel config contains "options QUOTA", however quotas are not enabled. > Please commit the fix, IMHO long-term breakage of such a basic functionality > (NFS server + quotas) in -STABLE branch isn't a Good Thing (TM).
FYI, if you're not using quotas then you should remove the option from your kernel config to avoid trashing your performance. Kris
pgpHaBFWdNItK.pgp
Description: PGP signature