Re: True fsync() in Linux (on IDE)

From: Chris Mason
Date: Fri Mar 19 2004 - 15:25:09 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/