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

Re: [Xen-devel] [PATCH 1/3] qemu-xen-traditional: use O_DIRECT to open disk images for IDE

On Tue, 2012-03-27 at 18:22 +0100, Ian Jackson wrote:
> Stefano Stabellini writes ("RE: [Xen-devel] [PATCH 1/3] qemu-xen-traditional: 
> use O_DIRECT to open disk images for IDE"):
> > On Tue, 27 Mar 2012, Zhang, Yang Z wrote:
> > > Doesn't cache mode have better performance than NOCACHE?
> > 
> > Actually you are correct. I think that this patch should be dropped from
> > the series. Of course we need O_DIRECT for QDISK otherwise we do loose
> > correctness but considering that IDE should only be used during
> > installation it can stay as it is.
> I don't think this assumption about IDE is correct.  To say that "IDE
> should only be used during installation" is not an excuse for
> providing an IDE controller which violates the usual correctness
> rules.

The changeset which originally made this use BDRV_O_CACHE is below, do
the arguments made there no longer apply? To my non-qemu eye it looks
like hw/ide.c is doing an appropriate amount of bdrv_flush().

I think it is possible that we've incorrectly determined that
BDRV_O_CACHE has issues with correctness?

My recollection is that way-back-when that installation to an emulated
IDE device with O_DIRECT was so slow that it was deemed an acceptable
trade-off, presumably given the understanding that IDE cache control was

I think Stefano measured it again recently, Stefano -- can you share the
numbers you saw?


commit 82787c6f689d869ad349df83ec3f58702afe00fe
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date:   Mon Mar 2 11:21:51 2009 +0000

    Override default cache mode for disk images to write-back
    Upstream qemu changed the default cache mode to write-through (ie,
    O_DSYNC) which is much slower.  We do not need this as we have
    explicit control of cacheing with the IDE cache control commands.
    Original patch by Yang Zhang modified by Ian Jackson.
    Signed-off-by: Yang Zhang <yang.zhang@xxxxxxxxx>
    Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>

diff --git a/xenstore.c b/xenstore.c
index 6bfcdbb..928e950 100644
--- a/xenstore.c
+++ b/xenstore.c
@@ -472,7 +472,7 @@ void xenstore_parse_domain_config(int hvm_domid)
         if (pasprintf(&danger_buf, "%s/device/vbd/%s", danger_path, e_danger[i]
-       if (bdrv_open2(bs, danger_buf, 0 /* snapshot */, &bdrv_vbd) == 0) {
+       if (bdrv_open2(bs, danger_buf, BDRV_O_CACHE_WB /* snapshot and write-bac
            pstrcpy(bs->filename, sizeof(bs->filename), params);
        } else
@@ -498,7 +498,7 @@ void xenstore_parse_domain_config(int hvm_domid)
             pstrcpy(bs->filename, sizeof(bs->filename), params);
-            if (bdrv_open2(bs, params, 0 /* snapshot */, format) < 0)
+            if (bdrv_open2(bs, params, BDRV_O_CACHE_WB /* snapshot and write-ba
                 fprintf(stderr, "qemu: could not open vbd '%s' or hard disk ima

> Ian.
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

Xen-devel mailing list



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