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

Re: [libvirt] PATCH: Disable QEMU drive caching



Daniel P. Berrange wrote:
On Wed, Oct 08, 2008 at 11:53:14AM -0500, Anthony Liguori wrote:
Daniel P. Berrange wrote:
On Wed, Oct 08, 2008 at 10:51:16AM -0500, Anthony Liguori wrote:
A great deal of virtualization users are doing some form of homogeneous consolidation. If they have a good set of management tools or sophisticated storage, then their guests will be sharing base images or something like that. Caching in the host will result in major performance improvements because otherwise, the same data will be fetched multiple times.
NB, this has no impact on caching of backing files - QEMU masks out
the O_DIRECT flag when opening the backing file
It doesn't mask out O_DIRECT, it just doesn't pass any flags to the backing file when it opens it. IMHO, this is a bug.

Perhaps I'm interpreting the wrong bit of code, but I was looking at
QEMU's  block.c in the bdrv_open2() function. The last thing it does
is this, which masks out all flags except for the open mode:

    if (bs->backing_file[0] != '\0') {

        if (bdrv_open(bs->backing_hd, backing_filename, flags & (BDRV_O_RDONLY | BDRV_O_RDWR)) < 0)
            goto fail;
    }
   if (bs->backing_file[0] != '\0') {
       /* if there is a backing file, use it */
       bs->backing_hd = bdrv_new("");
       if (!bs->backing_hd) {
       fail:
           bdrv_close(bs);
           return -ENOMEM;
       }
       path_combine(backing_filename, sizeof(backing_filename),
                    filename, bs->backing_file);
       if (bdrv_open(bs->backing_hd, backing_filename, 0) < 0)
           goto fail;
   }

Is what's in the latest QEMU tree. Is what you're looking at carrying a patch, perhaps? If so, there may be a bug in the patch.

Regards,

Anthony Liguori


Daniel


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