Re: [Qemu-block] [Qemu-devel] [PATCH v2 for-2.4 3/3] hw/arm/virt: Make block devices default to virtio
Peter Maydell writes: > On 25 June 2015 at 08:40, Markus Armbruster wrote: >> Peter Maydell writes: >> >>> Now we have virtio-pci, we can make the virt board's default block >>> device type be IF_VIRTIO. This allows users to use simplified >>> command lines that don't have to explicitly create virtio-pci-blk >>> devices; the -hda &c very short options now also work. >>> >>> This means we also need to set no_cdrom to avoid getting a >>> default cdrom device -- this is needed because the virtio-blk >>> device will fail if it is connected to a block backend with >>> no media, which is what the default cdrom device typically is. >>> Providing a cdrom with media via -cdrom will still work. >> >> It'll create a virtio-blk device with non-removable medium, won't it? > > Yes, I think so. Mostly I cared that -cdrom won't make qemu die with a > confusing error. > > (Without no_cdrom, qemu dies even if you don't say -cdrom, because > of the default empty drive.) Instead of "will still work", I'd like to see something like "will succeed, but silently create a device with non-removable medium, which is probably not what you want, but the best we can do now". >>> The command line will be changed to include 'if=none', as the >> >> will have to be changed > > Yes. > > -- PMM
Re: [Qemu-block] [Qemu-devel] [PATCH v2 for-2.4 3/3] hw/arm/virt: Make block devices default to virtio
On 25 June 2015 at 08:40, Markus Armbruster wrote: > Peter Maydell writes: > >> Now we have virtio-pci, we can make the virt board's default block >> device type be IF_VIRTIO. This allows users to use simplified >> command lines that don't have to explicitly create virtio-pci-blk >> devices; the -hda &c very short options now also work. >> >> This means we also need to set no_cdrom to avoid getting a >> default cdrom device -- this is needed because the virtio-blk >> device will fail if it is connected to a block backend with >> no media, which is what the default cdrom device typically is. >> Providing a cdrom with media via -cdrom will still work. > > It'll create a virtio-blk device with non-removable medium, won't it? Yes, I think so. Mostly I cared that -cdrom won't make qemu die with a confusing error. (Without no_cdrom, qemu dies even if you don't say -cdrom, because of the default empty drive.) >> The command line will be changed to include 'if=none', as the > > will have to be changed Yes. -- PMM
Re: [Qemu-block] [Qemu-devel] [PATCH v2 for-2.4 3/3] hw/arm/virt: Make block devices default to virtio
Peter Maydell writes: > Now we have virtio-pci, we can make the virt board's default block > device type be IF_VIRTIO. This allows users to use simplified > command lines that don't have to explicitly create virtio-pci-blk > devices; the -hda &c very short options now also work. > > This means we also need to set no_cdrom to avoid getting a > default cdrom device -- this is needed because the virtio-blk > device will fail if it is connected to a block backend with > no media, which is what the default cdrom device typically is. > Providing a cdrom with media via -cdrom will still work. It'll create a virtio-blk device with non-removable medium, won't it? > Note that this change means that some command lines which used > to work (by accident) will stop working. Where a drive was connected > manually to a device but without 'if=none' being specified, we > used to treat this as an IDE drive, which we would then not autoplug > because the board doesn't support IDE. Now we will treat it as a > virtio disk and autoplug it, which means the attempt to use the > drive manually will fail: > qemu-system-arm: -drive file=img.qcow2,id=foo: Drive 'foo' is already > in use because it has been automatically connected to another device > (did you need 'if=none' in the drive options?) > The command line will be changed to include 'if=none', as the will have to be changed > error message suggests. > > Signed-off-by: Peter Maydell > --- > hw/arm/virt.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index f1e85c8..7e643ba 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -966,6 +966,8 @@ static void virt_class_init(ObjectClass *oc, void *data) > mc->init = machvirt_init; > mc->max_cpus = 8; > mc->has_dynamic_sysbus = true; > +mc->block_default_type = IF_VIRTIO; > +mc->no_cdrom = 1; > } > > static const TypeInfo machvirt_info = {