OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [virtio] Re: [virtio-comment] Problems with VIRTIO-4 and writeback only disks


On Wed, Sep 11, 2013 at 12:49:26PM +0930, Rusty Russell wrote:
> James Bottomley <jbottomley@parallels.com> writes:
> > [resending to virtio-comment; it looks like I'm not subscribed to
> > virtio-dev ... how do you subscribe?]
> 
> Mail to virtio-dev-subscribe@lists.oasis-open.org, or via
>         https://www.oasis-open.org/mlmanage/
> 
> BTW, I've moved this to virtio@ since it's core business, with virtio-comment
> cc'd.
>

Hmm I don't think we should Cc both - this just makes most people get
two copies.

> > Sorry, I don't have a copy of the original email to reply to:
> >
> > https://lists.oasis-open.org/archives/virtio-comment/201308/msg00078.html
> >
> > The part that concerns me is this:
> >
> >> +5. The cache mode should be read from the writeback field of the configuration
> >> +  if the VIRTIO_BLK_F_CONFIG_WCE feature if available; the driver can also
> >> +  write to the field in order to toggle the cache between writethrough (0)
> >> +  and writeback (1) mode.
> >> +  If the feature is not available, the driver can instead look at the result
> >> +  of negotiating VIRTIO_BLK_F_WCE: the cache will be in writeback mode after
> >> +  reset if and only if VIRTIO_BLK_F_WCE is negotiated[30]
> >
> > The questions are twofold and have to do with Write Back only disks (to
> > date we've seen quite a few ATA devices like this and a huge number of
> > USB devices):
> >
> >      1. If the guest doesn't negotiate WCE, what do you do on the host
> >         (flush on every write is one possible option; run unsafe and
> >         hope the host doesn't crash is another).
> >      2. If the guest asks to toggle the device from writeback (1) to
> >         writethrough (0) mode, what do you do?  Refuse the toggle would
> >         be reasonable or flip back into whatever mode you were using to
> >         handle 1. is also possible.
> >
> > James
> 
> I thought about this more after the call.  If we look at block device
> implementations on the host:
> 
> 1) Dumb device (ie. no flush support).
>    - Get write request, write() to backing file.  Repeat.
>    - If guest crashes it always sees in order, if host crashes you're
>      out of luck.
> 
> 2) Dumb device which tries to handle host crashes.
>    - Noone wants this: requires a fdatasync() after every write.
> 
> 3) Smart device.  Uses AIO/threads to service requests.
>    - Needs flushes otherwise if guest crashes it can see out of order.
>    - Flushes can must wait for outstanding requests.
> 
> 4) Smart device which tries to handle host crashes.
>    - Flushes must fdatasync() after waiting.
> 
> The interesting question is between 3 & 4:
> - Do we differentiate 3 and 4 from the guest side?
> - Or do we ban 3 and insist on 4?  Knowing that there are no guarantees that an
>   implementation will actually hit the metal (eg. crappy underlying
>   device or crappy non-barrier filesystem).
> 
> Whatever we do, I don't see why we'd want to toggle WCE after
> negotiation.

I think it's mostly because sdparm let you tweak it for normal disks ...

>  If you implement a smart device, you'd need to drop to a
> single thread, but you'd definitely lose host-crash reliability.
> 
> Cheers,
> Rusty.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that 
> generates this mail.  Follow this link to all your TCs in OASIS at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]