qemu/hw/block
Stefano Stabellini 454ae734f1 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>
2013-07-29 11:03:48 +00:00
..
dataplane dataplane: sync virtio.c and vring.c virtqueue state 2013-07-19 12:29:21 +08:00
block.c
cdrom.c
ecc.c
fdc.c fdc: Improve error propagation for QOM realize 2013-07-23 00:37:35 +02:00
hd-geometry.c
m25p80.c block/m25p80: Update Micron entries 2013-07-19 12:52:03 +04:00
Makefile.objs NVMe: Initial commit for new storage interface 2013-06-17 17:47:59 +02:00
nand.c nand: Don't inherit from Sysbus 2013-06-25 19:15:46 +01:00
nvme.c hw/block: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
nvme.h NVMe: Initial commit for new storage interface 2013-06-17 17:47:59 +02:00
onenand.c hw/block: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
pc_sysfw.c memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
pflash_cfi01.c pflash_cfi01: duplicate status byte from bits 23:16 for 32bit reads 2013-07-28 19:59:23 +02:00
pflash_cfi02.c pflash_cfi02: Use QOM realize for pflash_cfi02 2013-07-23 00:37:35 +02:00
tc58128.c hw: move block devices to hw/block/, configure via default-configs/ 2013-04-08 18:13:13 +02:00
virtio-blk.c virtio: cleanup: init and exit function. 2013-04-24 11:50:21 -05:00
xen_blkif.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
xen_disk.c xen_disk: support "direct-io-safe" backend option 2013-07-29 11:03:48 +00:00