Messages in this thread | | | Subject | Re: True fsync() in Linux (on IDE) | From | Chris Mason <> | Date | Fri, 19 Mar 2004 15:23:53 -0500 |
| |
On Fri, 2004-03-19 at 14:26, Peter Zaitsev wrote: > On Fri, 2004-03-19 at 05:52, Chris Mason wrote: > > > > I am listening to Peter, Jens and I have spent a significant amount of > > time on this code. We can go back and spend many more hours testing and > > debugging the 2.4 changes, or we can go forward with a very nice > > solution in 2.6. > > > > I'm planning on going forward with 2.6 > > Chris, Hans > > It is great to hear this is going to be fixed in 2.6, however it is > quite a pity we have a real mess with this in 2.4 series. > It is indeed.
> Resuming what I've heard so far it looks like it depends on: > > - If it is fsync/O_SYNC or O_DIRECT (which user would expect to have > the same effect in this respect. > - It depends on kernel version. Some vendors have some fixes, while > others do not have them. > - It depends on hardware - if it has write cache on or off > - It depends on type of write (if it changes mata data or not) > - Finally it depends on file system and even journal mount options > All of the above is correct.
> Just curious does at least Asynchronous IO have the same behavior as > standard IO ? >
For the suse patch, yes. If it triggers a commit, you get a cache flush.
> > All of these makes it extremely hard to explain what do users need in > order to get durability for their changes, while preserving performance. > > Furthermore as it was broken for years I expect we'll have people which > developed things with fast fsync() in mind, who would start screaming > once we have real fsync() > > (see my mail about Apple actually disabling cache flush on fsync() due > to this reason)
These are all difficult issues. I wish I had easier answers for you, hopefully we can get it all nailed down in 2.6 for starters.
-chris
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |