On Mon, 9 May 2016, Wei Liu wrote: > On Thu, Apr 28, 2016 at 03:20:46PM -0600, Jim Fehlig wrote: > > qemu commit 91a097e7 forbids specifying cache mode for empty > > drives. Attempting to create a domain with an empty qdisk cdrom > > drive results in > > > > qemu-system-x86_64: -drive if=ide,index=1,readonly=on,media=cdrom, > > cache=writeback,id=ide-832: Must specify either driver or file > > > > We need to fix this one way or another. > > > libxl only allows an empty 'target=' for cdroms. By default, cdroms > > are readonly (see the 'access' parameter in xl-disk-configuration.txt) > > and forced to readonly by any tools (e.g. xl) using libxlutil's > > xlu_disk_parse() function. With cdroms always marked readonly, > > explicitly specifying the cache mode for cdrom drives can be dropped. > > The drive's 'readonly=on' option can also be set unconditionally. > > > > Signed-off-by: Jim Fehlig <jfeh...@suse.com> > > CC Stefano who made the change to use writeback in > e9a327bbbcab127625b0917a2780cb3601a81d01 . Also CC Anthony. > > Ian, Stefano and Anthony, do you have opinion on this patch?
It looks good to me. We could consider to backport it, given that we only have a loose relationship with QEMU and older versions of Xen could end up running with newer versions of QEMU. > > > > V2: > > Drop explicitly setting cache mode since cdrom devices are > > readonly. > > Unconditionally add 'readonly=on' drive option for cdroms. > > > > tools/libxl/libxl_dm.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c > > index fd12844..959e292 100644 > > --- a/tools/libxl/libxl_dm.c > > +++ b/tools/libxl/libxl_dm.c > > @@ -1368,8 +1368,8 @@ static int > > libxl__build_device_model_args_new(libxl__gc *gc, > > > > if (disks[i].is_cdrom) { > > drive = libxl__sprintf(gc, > > - > > "if=ide,index=%d,readonly=%s,media=cdrom,cache=writeback,id=ide-%i", > > - disk, disks[i].readwrite ? "off" : "on", > > dev_number); > > + > > "if=ide,index=%d,readonly=on,media=cdrom,id=ide-%i", > > + disk, dev_number); > > > > if (target_path) > > drive = libxl__sprintf(gc, "%s,file=%s,format=%s", > > -- > > 1.8.0.1 > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel