Subject: Re: CVS commit: syssrc/sys/ufs/mfs
To: Perry E. Metzger <perry@piermont.com>
From: Chuck Silvers <chuq@chuq.com>
List: source-changes
Date: 10/24/2002 21:05:46
On Thu, Oct 24, 2002 at 04:17:35PM -0400, Perry E. Metzger wrote:
> > Log Message:
> > the work-around in rev. 1.37 (turn off async) wasn't enough to prevent
> > hangs under heavy load.  so we now apply the more extreme version:
> > make MFS mounts "sync".  fixes PRs 17128 and 17321.
> 
> Well, this papers over the problem but it doesn't address why and cuts
> our performance. mfs was async for a long time and did just fine in
> the old world order.

the problem is that the current MFS implementation is a great big hack.
it needs to be redesigned to be able to page data out to disk without
needing to allocate memory in the process.  I can't see any good way
to do that while using the current mechanism of creating a standard FFS
in swap-backed memory.  this is a substantial amount of work that
I'd really appreciate someone else volunteering to do.

it's very easy to cause the same hangs in 1.5.x by writing to large MFS
files via mmap(), but with UBC it happens with write() as well.

-Chuck