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

Re: [Xen-devel] 4.7 qemu regression: HVM guests fail to boot from xvda



On 03/06/16 12:45, Ian Jackson wrote:
> George Dunlap writes ("Re: [Xen-devel] 4.7 qemu regression: HVM guests fail 
> to boot from xvda"):
>> On 03/06/16 12:20, Olaf Hering wrote:
>>> I think the regression is: 'vdev=xvda' does not result in a disk
>>> connected to the emulated controller. Should we change the way hdtype=
>>> is handled internally? If hdtype= is not given it remains unset and with
>>> vdev=xvd* no disk-on-emulated-controller gets added. If hdtype= is set
>>> then vdev=xvd* will result in an disk-on-emulated-controller, which
>>> fixes the regression. If vdev=hd* and hdtype= was not set, hdtype will
>>> be silently set to ide.
>>
>> I'd be OK with this.  But is the "hdtype unset" also available at the
>> libxl level?
> 
> There are two problems with this `hdtype' approach.
> 
> Firstly, it is global.  That is, it applies to all disks of the
> particular guest.  But then maybe we don't care about that because
> this anomalous major-number-stealing behaviour is probably per-guest
> rather than per-disk.
> 
> Secondly, the proposal above involves changing both the semantics of
> existing `hdtype' parameter values, and the default hdtype value.  The
> resulting situation would be that even specifying vdev=hda wouldn't
> get you an emulated device, by default, unless you specified `hdtype'
> too.  I don't think that is right.
> 
> The possibilities I see are:
> 
> (1) New boolean per-guest parameter for this behaviour, meaning
>    `provide emulated devices for all xvd* as if they were hd*'.
> 
> (2) New `hdtype=ideforpv' which has the same effect as `hdtype=ide'
>    plus the semantics in (1) above.  (I'm open to better naming
>    suggestions.)
> 
> (3) New disk property parameter `hvm-emulate' in the Deprecated
>     section of xl-disk-configuration.txt.

Why in the Deprecated section?

The current interface is a bit mad.  I've just been running my CentOS
smoke-testing scripts against packages built against 4.7-rc4.  I've got
bits of the scripts which mount filesystems in dom0; bits of it that do
bits in fstab and so on, and bits of it that actually generate the
config file.

In every part of the whole system -- in dom0, in the guest, in
everything -- I use xvda; *except* in the parts dealing with the guest
config, where for some reason I mysteriously put 'hda', which ends up
producing an xvda either when booted PV or when booted HVM.  Does that
make any sense?

What about a per-disk property, emulate={default,always,only}, which for
HVM will do the things we're talking about and be ignored on PV?
'default' will behave as it does now: xvda will get you only PV, hda
will get you PV-backed emulated.  'always' will always give you an
emulated device even if you specify xvda, and 'only' will only give you
an emulated device (with no PV).

I actually think the default for most people who are not using EFI would
be to include "vdev=xvd?,emulate=always" in most config files for
maximum flexibility and consistency.

 -George


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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