|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] introduce a cache options for PV disks
On Thu, 27 Jun 2013, Ian Jackson wrote:
> Stefano Stabellini writes ("[PATCH v2] introduce a cache options for PV
> disks"):
> > Document a per-disk cache option in the xl config file to allow users to
> > select the cache mode that the backend should use to open the disk file
> > or device.
>
> Here's an RFD revised version of the qemu patch. I haven't compiled
> it yet.
>
It's mostly OK, just few minor corrections for code readability
> diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c
> index 247f32f..9b42e7f 100644
> --- a/hw/block/xen_disk.c
> +++ b/hw/block/xen_disk.c
> @@ -93,6 +93,7 @@ struct XenBlkDev {
> char *type;
> char *dev;
> char *devtype;
> + bool directiosafe;
> const char *fileproto;
> const char *filename;
> int ring_ref;
> @@ -701,6 +702,7 @@ static int blk_init(struct XenDevice *xendev)
> {
> struct XenBlkDev *blkdev = container_of(xendev, struct XenBlkDev,
> xendev);
> int info = 0;
> + char *directiosafe == NULL;
^ =
> /* read xenstore entries */
> if (blkdev->params == NULL) {
> @@ -733,6 +735,8 @@ static int blk_init(struct XenDevice *xendev)
> if (blkdev->devtype == NULL) {
> blkdev->devtype = xenstore_read_be_str(&blkdev->xendev,
> "device-type");
> }
> + directiosafe = xenstore_read_be_str(&blkdev->xendev, "direct-io-safe");
> + blkdev->directiosafe = (directiosafe && atoi(directiofsafe));
>
> /* do we have all we need? */
> if (blkdev->params == NULL ||
> @@ -760,6 +764,8 @@ static int blk_init(struct XenDevice *xendev)
> xenstore_write_be_int(&blkdev->xendev, "feature-flush-cache", 1);
> xenstore_write_be_int(&blkdev->xendev, "feature-persistent", 1);
> xenstore_write_be_int(&blkdev->xendev, "info", info);
> +
> + g_free(directiosafe);
> return 0;
>
> out_error:
> @@ -773,6 +779,7 @@ out_error:
> blkdev->dev = NULL;
> g_free(blkdev->devtype);
> blkdev->devtype = NULL;
> + g_free(directiosafe);
maybe add
blkdev->directiosafe = false;
> return -1;
> }
>
> @@ -784,6 +791,9 @@ static int blk_connect(struct XenDevice *xendev)
>
> /* read-only ? */
> qflags = BDRV_O_CACHE_WB | BDRV_O_NATIVE_AIO;
> + if (blkdev->directiosafe) {
> + qflags = BDRV_O_NOCACHE | BDRV_O_NATIVE_AIO;
> + }
Please change this into:
if (blkdev->directiosafe) {
qflags = BDRV_O_NOCACHE | BDRV_O_NATIVE_AIO;
} else {
qflags = BDRV_O_CACHE_WB;
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |