Skip site navigation (1)Skip section navigation (2)
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>

next in thread | previous in thread | raw e-mail | index | archive | help
    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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906160330.UAA25113>