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

Re: [Xen-devel] Fatal crash on xen4.2 HVM + qemu-xen dm + NFS



Konrad / Stefano,

Any update here?

I can't help but think a crashed dom0 and guaranteed domU corruption is
less bad than a theoretical data loss on a crash (not that we know
that theoretical possibility exists yet).

I'm currently using this trivial patch
https://github.com/abligh/qemu-upstream-4.2-testing-livemigrate/commit/a7d72
96aebc21af15074f3bf64c5c6795ca05f16

Alex


--On 5 February 2013 15:40:33 +0000 Alex Bligh <alex@xxxxxxxxxxx> wrote:

Konrad / Stefano,

Any movement / ideas on this one?

Alex

--On 25 January 2013 11:28:31 +0000 Alex Bligh <alex@xxxxxxxxxxx> wrote:

Konrad,

--On 23 January 2013 16:29:20 +0000 Stefano Stabellini
<stefano.stabellini@xxxxxxxxxxxxx> wrote:

diff --git a/hw/xen_disk.c b/hw/xen_disk.c
index a402ac8..1c3a6f5 100644
--- a/hw/xen_disk.c
+++ b/hw/xen_disk.c
@@ -603,7 +603,7 @@ static int blk_init(struct XenDevice *xendev)
     }

     /* read-only ? */
-    qflags = BDRV_O_NOCACHE | BDRV_O_CACHE_WB | BDRV_O_NATIVE_AIO;
+    qflags = /* BDRV_O_NOCACHE | */ BDRV_O_CACHE_WB |
BDRV_O_NATIVE_AIO; if (strcmp(blkdev->mode, "w") == 0) {
         qflags |= BDRV_O_RDWR;
     } else {

Before going for something like that I would like a confirmation from
Konrad about blkfront behavior regarding barriers and
BLKIF_OP_FLUSH_DISKCACHE. I certainly don't want to risk data
corruptions.

Any ideas?


A slightly prettier patch would look like the one pasted
below (not sent with git-sendemail so beware whitespace issues).

--
Alex Bligh

commit a7d7296aebc21af15074f3bf64c5c6795ca05f16
Author: Alex Bligh <alex@xxxxxxxxxxx>
Date:   Thu Jan 24 09:41:34 2013 +0000

    Disable use of O_DIRECT by default as it results in crashes.

    See:
      http://lists.xen.org/archives/html/xen-devel/2012-12/msg01154.html
    for more details.

diff --git a/hw/xen_disk.c b/hw/xen_disk.c
index a402ac8..a618d8d 100644
--- a/hw/xen_disk.c
+++ b/hw/xen_disk.c
@@ -45,6 +45,8 @@ static int batch_maps   = 0;

 static int max_requests = 32;

+static int use_o_direct = 0;
+
 /* ------------------------------------------------------------- */

 # define BLOCK_SIZE  512
@@ -603,7 +605,7 @@ static int blk_init(struct XenDevice *xendev)
     }

     /* read-only ? */
-    qflags = BDRV_O_NOCACHE | BDRV_O_CACHE_WB | BDRV_O_NATIVE_AIO;
+    qflags = (use_o_direct?BDRV_O_NOCACHE:0) | BDRV_O_CACHE_WB |
BDRV_O_NATIVE_AIO;
     if (strcmp(blkdev->mode, "w") == 0) {
         qflags |= BDRV_O_RDWR;
     } else {






--
Alex Bligh





--
Alex Bligh

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


 


Rackspace

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