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@lists.xen.org http://lists.xen.org/xen-devel