Date: Tue, 15 Jun 1999 20:30:28 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: "David E. Cross" <crossd@cs.rpi.edu>, David Scheidt <dscheidt@enteract.com>, Chan Yiu Wah <c5666305@hkstar.com>, freebsd-current@FreeBSD.ORG Subject: NFS Test patch available for -CURRENT (was Re: NFS vnode ref issues on server) Message-ID: <199906160330.UAA25113@apollo.backplane.com> References: <199906150421.VAA14439@apollo.backplane.com>
index | next in thread | previous in thread | raw e-mail
Here's the location:
http://www.backplane.com/FreeBSD4/
It's in the 'NFS bugs first found by David E. Cross' section.
The diff is *HUGE*, but strangly enough only covers three files :-)
It does not cover nfs_node.c, so it should not interfere with the
commit David is planning on doing.
There are almost certainly bugs in the rewrite, so people who test
this need to expect panics. If you get a panic, please use a DDB-enabled
kernel and do a 'trace' -- the code is organized such that it should
be fairly easy to track down the bugs. Whatever bugs there are will
be minor ( I hope ). It is able to build world ( at least so far
as I've gotten ), and it does run David's O_CREAT test code. It
needs much more testing, though.
Netstat on NFS server (2xSMP box with insane amounts of ram) while
running the O_CREAT test program on two separate clients simultaniously
with a buildworld on one of the clients.
test3:/mnt# netstat -in 1
input (Total) output
packets errs bytes packets errs bytes colls
(just the two O_CREAT test programs running)
5025 0 899628 5024 0 1097738 19
5035 0 906642 5035 0 1106276 28
5038 0 896578 5038 0 1093918 15
4988 0 901424 4989 0 1100052 17
5011 0 907504 5010 0 1107182 14
5058 0 750524 5058 0 915936 9
4205 0 897390 4206 0 1094920 20
5036 0 631906 5035 0 744222 12
4136 0 462974 4137 0 558708 177
(the two O_CREAT test programs running and buildworld running)
2601 0 429798 2594 0 521616 295
2656 0 550306 2655 0 583742 343
2429 0 416518 2386 0 507574 402
2500 0 553238 2500 0 593134 326
The new code is mainly centered around nfs_serv.c and essentially
rewrites most of the guts of most of the procedures to properly
track and abort the NFS ops. It isn't pretty, but it is functional.
There were simply too many problems to make simple bug fixes - just
over three quarters of the procedures had incorrect termination code
for handling nfsm_*() macro error conditions. NO changes were made
to API's outside of NFS to accomodate the new code ( which is partially
why it is still so messy ).
Once we've stabilized it in -current and can show that it is at least
not worse then the original code, and I get my commit privs back, I will
MFC it into -stable.
-Matt
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906160330.UAA25113>
