[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [patch 0/6] xenblk: Add O_DIRECT and O_SYNC support.



On 5/11/08 08:16, "Joe Jin" <joe.jin@xxxxxxxxxx> wrote:

>> What's the vbd type in this case: raw partition, lvm, qcow file, ...?
> 
> Raw partition, crashed/power outage, lots of data lost :(
> 
>> The existing BLKIF_OP_WRITE_BARRIER and BLKIF_OP_FLUSH_DISKCACHE should
>> suffice to implement O_SYNC on the blkfront side, I think. O_DIRECT doesn't
>> mean writes are synchronous to the platters -- just means the buffer cache
>> is bypassed -- which should generally be the case on the blkback side always
>> anyway.
> 
> However, frontend driver could not got the write's flag at all.
> if we could know the request with O_SYNC flag should be easy to handle,
> need not touch filesystem layer.

So what does O_SYNC mean to Linux then? If it's not passed down to the
blkdev layer then it can only mean that requests must be synchronously
committed as far as that layer. I would therefore imagine you could lose as
much data natively as you do running on Xen. Where are these megabytes of
data sitting when they get lost, and why does it not happen when running
natively? If O_SYNC is not waiting for completion responses from the block
layer, that's a limitation of Linux's generic block subsystem, isn't it?

 -- Keir

> O_DIRECT is difference not only buffer head, if read/write is direct-io,
> need to commit request as soon as possible, means unplug request_queue
> if request with O_DIRECT flag(request should be marked REQ_RW_SYNC
> flag).



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.