From: Jeff Garzik <hidden> Date: 2006-08-14 18:39:51
So... has anybody given any thought to enabling fsync(2), fdatasync(2), and sync_file_range(2) issuing a [FLUSH|SYNCHRONIZE] CACHE command?
This has bugged me for _years_, that Linux does not do this. Looking at forums on the web, it bugs a lot of other people too.
My suggestion would be to add a FLUSH op alongside the existing READ and WRITE[_SYNC] ops, rather than passing down WRITE_SYNC. Why? Doing so maintains a 1-1 translation between requests and disk commands, and it would allow MD and DM more flexibility in handling this operation.
But that's just a guess. I'm open to suggestions.
Jeff
From: Arjan van de Ven <hidden> Date: 2006-08-14 19:35:57
On Mon, 2006-08-14 at 14:39 -0400, Jeff Garzik wrote:
So... has anybody given any thought to enabling fsync(2), fdatasync(2),
and sync_file_range(2) issuing a [FLUSH|SYNCHRONIZE] CACHE command?
This has bugged me for _years_, that Linux does not do this. Looking at
forums on the web, it bugs a lot of other people too.
eh afaik 2.6.17 and such do this if you have barriers enabled...
On Mon, 2006-08-14 at 14:39 -0400, Jeff Garzik wrote:
quoted
So... has anybody given any thought to enabling fsync(2), fdatasync(2),
and sync_file_range(2) issuing a [FLUSH|SYNCHRONIZE] CACHE command?
This has bugged me for _years_, that Linux does not do this. Looking at
forums on the web, it bugs a lot of other people too.
eh afaik 2.6.17 and such do this if you have barriers enabled...
That is correct, but it only works on reiserfs and XFS and user space
really cannot tell whether it did the right thing or not. File system
developers really should take this more seriously...
--
Jens Axboe
From: Jeff Garzik <hidden> Date: 2006-08-14 21:04:40
Jens Axboe wrote:
On Mon, Aug 14 2006, Arjan van de Ven wrote:
quoted
On Mon, 2006-08-14 at 14:39 -0400, Jeff Garzik wrote:
quoted
So... has anybody given any thought to enabling fsync(2), fdatasync(2), and sync_file_range(2) issuing a [FLUSH|SYNCHRONIZE] CACHE command?
This has bugged me for _years_, that Linux does not do this. Looking at forums on the web, it bugs a lot of other people too.
eh afaik 2.6.17 and such do this if you have barriers enabled...
That is correct, but it only works on reiserfs and XFS and user space
really cannot tell whether it did the right thing or not. File system
developers really should take this more seriously...
IMO the non-journalling fs's should have some sort of common fsync helper via sync_inode(), sync_mapping_buffers(), and similar paths... Should be able get a bunch of fs's in one big swath that way.
Jeff