Re: [Qemu-block] [Qemu-devel] [PATCH v2 for-2.4 3/3] hw/arm/virt: Make block devices default to virtio

2015-06-25 Thread Markus Armbruster
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

2015-06-25 Thread Peter Maydell
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

2015-06-25 Thread Markus Armbruster
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 = {