Date: Thu, 10 May 2001 19:27:42 -0700 From: Kirk McKusick <mckusick@mckusick.com> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ufs/ffs fs.h softdep.h ffs_softdep.c ... Message-ID: <200105110227.TAA14458@beastie.mckusick.com> In-Reply-To: Your message of "Tue, 08 May 2001 10:03:22 %2B0200." <57515.989309002@critter>
next in thread | previous in thread | raw e-mail | index | archive | help
To: Kirk McKusick <mckusick@FreeBSD.org> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ufs/ffs fs.h softdep.h ... In-Reply-To: Your message of "Tue, 08 May 2001 00:42:20 PDT." <200105080742.f487gKX83668@freefall.freebsd.org> Date: Tue, 08 May 2001 10:03:22 +0200 From: Poul-Henning Kamp <phk@critter.freebsd.dk> > Note that this change does not solve the much harder > problem of making this to-be-freed space available to applications > that want it (thus on a nearly full filesystem, you may still > encounter out-of-space conditions even though the free space will > show up eventually). Hopefully this harder problem will be the > subject of a future enhancement. Why not simply notice that free space will become available (by examining the counters, and sleep on something (lbolt ?) until either it does or it conclusively doesn't become available ? Also, wouldn't it make sense to allow less outstanding I/O for an almost full filesystem than for an empty one ? At the point that you know that there are no blocks currently available, you are deep in the allocation code holding a vnode locked. Space may not show up for up to a minute. While you are waiting, a locking race to the root can occur. While things will clear up eventually, the perceived system performance is poor. Especially if it is happening with any regularity. So, just waiting is not good enough, you have to proactively clean up space. That can be hard since you cannot lock any other vnodes (which can lead to deadlock). It is a solvable problem, but it is not easy. Kirk To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105110227.TAA14458>