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>