Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Oct 1997 00:06:38 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        karl@Mcs.Net (Karl Denninger)
Cc:        gibbs@plutotech.com, current@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/i386/isa apic_vector.s icu_vector.s
Message-ID:  <199710060006.RAA25997@usr05.primenet.com>
In-Reply-To: <19971002172756.26631@Mars.Mcs.Net> from "Karl Denninger" at Oct 2, 97 05:27:56 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Now if we can find a way around the cache coherency problems in NFS we'll be
> reasonably-well set.  The suggested "-kk" fix didn't, so we're still in
> trouble there.
> 
> Is there ANY fix for this?  NQNFS?  Anything?  Or is it just hosed right
> now?  The client and server are both FreeBSD, although the server is running
> code that's a few months old, so if it has to be upgraded that's possible
> (but a pain in the butt due to the fact that rebooting those servers is
> INCREDIBLY unpopular, not to mention the risk if the code that gets on them
> is *bad* in some way).

I don't know what *particular* coherency problem (or problems) you are
trying to reference here.  There are a lot of coherency problems; most
of them result from NFS files being used as a swap store, either for
mmap()'ed data, or for executables.

For executalbes, you could force the image *entirely* into local swap;
you would need to mark the pages as "do not force out in favor of dirty
pages" to do this, and attribute, on a per FS basis, whether the FS is
local or remote.  For unionfs, this means that you would need to take
the bit an propagate it.  This means that it needs to exist in both the
FS instance and mount instance records, and be referenced out of the
mount instance for the inheritance to work.

The swap system does not currently support this.

For mmap() and several other issues, you will need to use a distributed
lock manager to lock references, and make sure the writeback completes
before releasing the lock.  This means no write-gathering or other places
where the NFS can lie and say the operation has completed when it hasn't.
If you are using SVR4 or Solaris systems, you will need to go into the
debugger at boot time and disable write gathering.

If you could be more specific about the *exact* circumstances where you
believe a desynchronization is occurring, you would get a more specific
(and probably more immediately applicable) answer.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



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