]> git.proxmox.com Git - qemu.git/commit
xen_disk: support "direct-io-safe" backend option
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Mon, 29 Jul 2013 10:56:38 +0000 (10:56 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Mon, 29 Jul 2013 11:03:48 +0000 (11:03 +0000)
commit454ae734f1d9f591345fa78376435a8e74bb4edd
tree307c3d8462e1379e7b98d68a7a5e2152fe9cfdae
parent461bdb3414c40d6806194bf68c91521496b1042d
xen_disk: support "direct-io-safe" backend option

Support backend option "direct-io-safe".  This is documented as
follows in the Xen backend specification:

 * direct-io-safe
 *      Values:         0/1 (boolean)
 *      Default Value:  0
 *
 *      The underlying storage is not affected by the direct IO memory
 *      lifetime bug.  See:
 *        http://lists.xen.org/archives/html/xen-devel/2012-12/msg01154.html
 *
 *      Therefore this option gives the backend permission to use
 *      O_DIRECT, notwithstanding that bug.
 *
 *      That is, if this option is enabled, use of O_DIRECT is safe,
 *      in circumstances where we would normally have avoided it as a
 *      workaround for that bug.  This option is not relevant for all
 *      backends, and even not necessarily supported for those for
 *      which it is relevant.  A backend which knows that it is not
 *      affected by the bug can ignore this option.
 *
 *      This option doesn't require a backend to use O_DIRECT, so it
 *      should not be used to try to control the caching behaviour.

Also, BDRV_O_NATIVE_AIO is ignored if BDRV_O_NOCACHE, so clarify the
default flags passed to the qemu block layer.

The original proposal for a "cache" backend option has been dropped
because it was believed too wide, especially considering that at the
moment the backend doesn't have a way to tell the toolstack that it is
capable of supporting it.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
hw/block/xen_disk.c