It should be. But even if it is, the data _won't_ be coherent because write ordering will be non-existent. This will mess up most filesystems.
Jan > On 20 Mar 2017, at 22:01, Narcis Garcia <[email protected]> wrote: > > When cache=unsafe , is the data flushed as configured in host's Linux > kernel? > dirty_expire_centisecs > dirty_writeback_centisecs > > El 20/03/17 a les 17:21, Alberto Garcia ha escrit: >> On Fri, Mar 17, 2017 at 09:52:27PM +0100, Jan Schermer wrote: >> >>> I'm trying to understand when/what IO is synchronous and why, and so >>> far what I'm seeing I can only describe as "weird". >>> >>> With cache=none, all IO should pass from the QEMU process to the device >>> as-is. Right? >> >> Here's the summary of what the 'cache' option does in practice: >> >> cache=none -> direct I/O (the host page cache is bypassed). >> See O_DIRECT in open(2) >> >> cache=directsync -> direct I/O + flush after each write >> >> cache=writethrough -> flush after each write >> >> cache=unsafe -> guests flushes are ignored >> >> cache=writeback -> no special options (this is the default) >> >>> If so, that's not what I see - I see (with btrace) write IO as >>> asynchronous (W) in the guest, but synchronous (WS) on the host. >> >> Looks like what you're seeing is the direct I/O. >> >> Berto >> >
