Messages in this thread |  | | Date | Tue, 06 Feb 2001 19:21:00 +0100 | From | Daniel Phillips <> | Subject | Re: sync & asyck i/o |
| |
"Stephen C. Tweedie" wrote: > > Hi, > > On Tue, Feb 06, 2001 at 02:52:40PM +0000, Alan Cox wrote: > > > According to the man page for fsync it copies in-core data to disk > > > prior to its return. Does that take async i/o to the media in account? > > > I.e. does it wait for completion of the async i/o to the disk? > > > > Undefined. > > > In practice some IDE disks do write merging and small amounts of write > > caching in the drive firmware so you cannot trust it 100%. > > It's worth noting that it *is* defined unambiguously in the standards: > fsync waits until all the data is hard on disk. Linux will obey that > if it possibly can: only in cases where the hardware is actively lying > about when the data has hit disk will the guarantee break down.
Sometimes I want to know that the write is safely on disk and sometimes I only need to know that the io has gone over the bus and is on its way to disk. In the latter case the buffer/page can be unlocked a lot sooner. Please correct me if I'm wrong, but I don't think the current API can make that distinction for IDE, much less provide a uniform way of controlling this behaviour across all types of block devices. We need that, or else we have to choose between the following: 1) slow 2) risky.
I'd like to be able to set a bit in the buffer_head that says 'get back to me when it's on disk' vs 'get back to me when it's hit the bus'.
-- Daniel - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |