[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
|