Getting 'sync' to flush disk cache?

4 messages, 3 authors, 2006-08-14 · open the first message on its own page

Getting 'sync' to flush disk cache?

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

Re: Getting 'sync' to flush disk cache?

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...

Re: Getting 'sync' to flush disk cache?

From: Jens Axboe <hidden>
Date: 2006-08-14 20:14:08

On Mon, Aug 14 2006, Arjan van de Ven wrote:
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

Re: Getting 'sync' to flush disk cache?

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


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help