On Mon, 27 Nov 2017 16:09:09 +0100 Boris Fiuczynski <fiu...@linux.vnet.ibm.com> wrote:
> On 11/27/2017 03:13 PM, Halil Pasic wrote: > > > > > > On 11/27/2017 02:19 PM, Cornelia Huck wrote: > >> On Mon, 27 Nov 2017 14:11:57 +0100 > >> Halil Pasic <pa...@linux.vnet.ibm.com> wrote: > >> > >>> On 11/27/2017 01:56 PM, Cornelia Huck wrote: > >>>> On Fri, 24 Nov 2017 17:39:04 +0100 > >>>> Halil Pasic <pa...@linux.vnet.ibm.com> wrote: > >>>> > >>>>> On 11/24/2017 05:15 PM, Cornelia Huck wrote: > >> > >>>>>> (Unless we simply make this a "default cssid" prop after all - then it > >>>>>> would be more than just a simple indication for libvirt...) > >>>>>> > >>>>> > >>>>> We are now talking about the "cssid-unrestricted" property. The default > >>>>> cssid is not something I would like to do any time soon. > >>>> > >>>> What's so bad about this? As said above, I think it would be much more > >>>> useful. If libvirt can detect r/o vs. r/w for properties, we can simply > >>>> start out with a r/o variant now... > >>>> > >>> > >>> I'm not sure I understand you. Are you proposing the following: > >>> Drop the restriction, but don't indicate this via a read only > >>> "cssid-unrestricted" device property but via a "default-css" > >>> read only machine property. > >>> > >>> Libvirt then should know that if "default-css" is present then > >>> we don't have this virtual into 0xfe and non virtual into 0xfd > >>> restriction any more. > >> > >> Yes. > >> > > > > @Boris: > > Does this work for you? Technically it's equivalent to having > > "cssid-unrestricted" at machine level. > > > > I don't really like the idea of indicating unrestricted via > > something mostly unrelated (at least for me it ain't obvious that > > having the id of the default css exposed means we got rid of the > > limitation.). But I'm tied of discussing this, so I'm willing to > > compromise. > > > > Halil > > > I agree with Christian that we should not throw the "setting of a > default cssid" together with "unrestricted cssid" and than use read/only > and read/write to distinguish between the two! > OK, let's step back and summarize a bit. Current situation: - virtual devices must go into 0xfe, non-virtual devices must go into non-0xfe - 0xfe is the default cssid; non-mcss-e OSs see only devices in there - to expose non-virtual devices to today's guests, you need to use the squash-mcss parameter, which tries to put non-virtual devices into the same place in css 0xfe This is problematic in various ways (potential for incomprehensible errors, amongst others), so we agreed that the way to go is to drop the virtual-vs-non-virtual cssid restrictions and allow any device in any css image. Now, we need a way for libvirt to detect this, so that it knows that it can put e.g. vfio-ccw devices in the same css image as virtio devices. Proposal 1: Use a device attribute to show that the device can be put anywhere. This approach feels wrong to me (the non-restriction is not a property of the individual device, but of the whole css resp. the machine), so I would continue to veto this. Proposal 2: Export the default cssid as a machine property. If this property exists, it also implies that devices can be put into any css image (although it makes the most sense to put them into the default css image as indicated by the property). Can be made r/w later if it is too much for 2.12. Proposal 3: Add a machine property that indicates cssids are not restricted. Later, optionally add a second property that exposes the default cssid and makes it configurable. Personally, I prefer 2 (especially as this also allows to find out where the best place to put devices for non-mcss-e enabled guests is), but I could live with 3 as well (if making this r/w later would be problematic for libvirt.) (In every case, we would deprecate and later remove the squash parameter.) [As an aside, how hard is it to make the default cssid configurable? At a glance, it does not seem too bad to me.]