From owner-cvs-all Sun Sep 19 22:42:58 1999 Delivered-To: cvs-all@freebsd.org Received: from proxy2.ba.best.com (proxy2.ba.best.com [206.184.139.14]) by hub.freebsd.org (Postfix) with ESMTP id 5B290155E9; Sun, 19 Sep 1999 22:42:56 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com ([209.157.86.2]) by proxy2.ba.best.com (8.9.3/8.9.2/best.out) with ESMTP id WAA27219; Sun, 19 Sep 1999 22:42:13 -0700 (PDT) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id WAA77463; Sun, 19 Sep 1999 22:42:03 -0700 (PDT) (envelope-from dillon) Date: Sun, 19 Sep 1999 22:42:03 -0700 (PDT) From: Matthew Dillon Message-Id: <199909200542.WAA77463@apollo.backplane.com> To: John-Mark Gurney Cc: Peter Wemm , Matthew Jacob , Poul-Henning Kamp , dg@root.com, Greg Lehey , cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: User block device access (was: cvs commit: src/sys/miscfs/specfs spec_vnops.c src/sys/sys vnode.h src/sys/kern vfs_subr.c) References: <19990919183556.802C81CA7@overcee.netplex.com.au> <199909191911.MAA73893@apollo.backplane.com> <19990919212227.21537@hydrogen.fircrest.net> Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk :hmmm... I think that the application should recieve a signal of some :sort (such as SIGBUS) if the mmap'd area can't be synced because of a :write error, of course we would need to have a mechanism for the :application to find out about the problem... : :-- : John-Mark Gurney Voice: +1 408 975 9651 : Cu Networking This would be easy to implement, but it would be difficult for the program do anything meaningful with the information when it gets it. We have to the facts that mmap() is an inherently asynchronous medium. write() doesn't have to be, though. In fact, aio makes it fairly easy to run bdevs in a write-through mode rather then a write-behind mode because programmers who want to run the write asynchronously now can. I would argue that aio gives us an excellent 'out' in regards to handling bdevs. We simply change the write-behind to a write-through and implement mmap() (I already have patches for mmap), and the result is a bdev implementation that can be extremely useful to a wide set of programming problems, including databases. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message