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

Re: [Xen-devel] VMX status report. Xen: #17630 & Xen0: #540 -- blocked



Kevin Wolf writes ("Re: [Xen-devel] VMX status report. Xen: #17630 & Xen0: #540 
-- blocked"):
> Ian Jackson schrieb:
>  > Could those of you having this problem please try the attached patch ?
>  > I have tested this one much more thoroughly :-/.
> 
> It works for me, I don't like it though. Maybe I don't understand 
> correctly what the intent of the whole protocol stuff was. But if I do, 
> I think you're destroying this with your patch. This is not necessarily 
> bad as we don't use it anyway. But then it would be much cleaner to 
> remove the functionality altogether.

I think you've misunderstood, but I could be wrong.  To me it seems
that Qemu uses the terms `protocol' and `format' almost
interchangeably - I don't think they refer to different things.

find_protocol, find_format and find_image_format all select from the
same set of bdrv_xxx drivers: find_format take a name and returns the
driver with that name; find_protocol takes a filename and looks for a
`:' in it, and if so it assumes that the part before the `:' is the
name and finds the driver with that name.  (Just for extra confusion
the two namespaces are different and some drivers don't have a name
that can be put in filenames, but some drivers have both names.)
find_image_format reads the start of the file and passes it to drivers
until one of them recognises it.

> To be a bit more concrete, I think the following change is wrong (even 
> if there is no user anyway):
> 
> -    /* no need to test disk image formats for vvfat */
> -    if (drv == &bdrv_vvfat)
> +    /* no need to test disk image format if the filename told us */
> +    if (drv != NULL)
>           return drv;
> 
> find_protocol doesn't tell you the image format of a file, it tells you 
> a protocol through which you should obtain the image. And the image you 
> get could be a qcow image then.

These `protocols' aren't network protocols, they're disk image
formats.  The only ones which aren't a disk image format are vvfat and
(in ioemu) vbd.

vvfat is a crazy thing which you can't currently sanely layer anything
on top of (even though you might want to) and for which layering
a block driver underneath makes no sense.

vbd is a mistake; it should be minios's block_raw.

>   I think the reason why they are using 
> bdrv functions for all file accesses is that e.g. the qcow driver could 
> use the protocol driver then (if there was any protocol driver...)

The reason they're using bdrv functions is so that they can go through
the bdrv_raw driver for backing file and image file accesses; this is
necessary to preserve the properties of the block IO abstraction
through the various layers.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.