[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Sharing display between guests
On Mon, 2015-07-06 at 16:10 +0200, Maxime Ripard wrote: > On Mon, Jul 06, 2015 at 01:41:34PM +0100, Ian Campbell wrote: > > On Mon, 2015-07-06 at 14:26 +0200, Maxime Ripard wrote: > > > Hi Ian, > > > > > > On Mon, Jul 06, 2015 at 12:53:49PM +0100, Ian Campbell wrote: > > > > (switching to my work address) > > > > > > > > On Thu, 2015-07-02 at 13:13 +0200, Maxime Ripard wrote: > > > > > Hi, > > > > > > > > > > I've started using Xen on an Allwinner A33, which works great as an > > > > > headless device using the latest PSCI patches in U-Boot. > > > > > > > > > > However, we would like to do something more with it, and we would need > > > > > to have two VMs accessing the display at once, each one drawing in its > > > > > own part of the framebuffer. > > > > > > > > > > Something that would look like this: > > > > > > > > > > Framebuffer > > > > > +---------------+ > > > > > | | > > > > > | Guest 1 | > > > > > | | > > > > > +---------------+ > > > > > | | > > > > > | | > > > > > | | > > > > > | Guest 2 | > > > > > | | > > > > > | | > > > > > | | > > > > > +---------------+ > > > > > > > > > > Where thing start to get interesting is that the second guest would be > > > > > running Android, and as such would need OpenGL support, and access to > > > > > the GPU, and that ideally the first guest would need to be able to > > > > > draw over all the screen to create some kind of a drop-down menu. > > > > > > > > > > Our first thought was to use two different planes of a DRM/KMS driver, > > > > > one for each VM, with the second guest having the primary plane, and > > > > > the first guest having an overlay, and we would set it up in dom0. > > > > > > > > > > That would mean that we would have a static "composition", that would > > > > > be setup once and we could forget about it during the life of the > > > > > system. > > > > > > > > > > This way, we would also have a fixed size framebuffer assigned to > > > > > Android, which is much easier to support, and since we have total > > > > > control over the application in the first guest, we would be able to > > > > > control how much "transparency" we want to leave (== how much of > > > > > Android do we want to be displayed), and we would be able to create > > > > > our drop-down menu. > > > > > > > > > > Now the hard part: is such a setup possible at all with Xen? Can we > > > > > export a single plane to a guest and let it be the only user of it? If > > > > > that is possible, how would that interact with the 3D acceleration? > > > > > > > > As it stands today Xen supports exposing a 2D only PV graphics device > > > > (called "pvfb", essentially a flat/linear framebuffer) to guests, I > > > > think this has limited 2D acceleration support let alone 3D support. You > > > > can also (at least in principal, i.e. if the hardware isn't too strange) > > > > pass a GPU through to exactly one guest (often it's just dom0). > > > > > > > > Some people have also (I think) managed to use pvfb to expose a real > > > > linear fb to a guest, e.g. a "surface" in the real GPU which is setup by > > > > some more privileged domain. > > > > > > > > But, it sounds like you really want a way to expose the GPU > > > > functionality (i.e. 3D support) to at least one if not both guests. > > > > > > > > Are you expecting Guest 1 and Guest 2 to be isolated from each other in > > > > a secure way? Or is one considered to be more privileged than the other? > > > > > > I'd like to have both guests as isolated from each other as possible. > > > > > > But there's two sub-issues here actually: > > > > > > 1) Being able to have two VMs showing stuff on the same framebuffer at > > > the same time, without being aware of the other. If we could make pvfb > > > run on a DRM/KMS plane, that would be perfect for us. Another solution > > > would be to split the framebuffer in half and have pvfb running on > > > those two halves. > > > > Right, this portion is a bit more tractable in the short term I think. > > > > > 2) Then, one of the guests would be Android, which really requires > > > OpenGL, but the second guests would ideally use it as well, but if it > > > complicates things (and it really seems like it does), we can drop > > > that from the requirement, which would make us fall in the "exactly > > > one guest" case you were talking about (except that it wouldn't dom0, > > > but one of the domU's that would access it). > > > > IOW give the Android full access to the h/w and have it provide a 2d > > pvfb to the other guest, yes I think that could be made to work. > > Not really. I was thinking having the display controller in dom0, > exposing two pvfb, one for Android, one for the other VM, and the GPU > only being passed only to the Android VM. > > I don't know whether it makes sense... I'm too used to thinking of a graphics device as a single monolithic whole, rather than as separate/independent display controller and GPU etc and am not quite comfortable yet with this idea that they might be independent things which you can mix and match ;-). To me it seems like the hard bit will likely be the guest side s/w and whether you can convince it to be happy with a GPU without the display controller it normally expects but a PVFB instead. But I think that's pretty much smack bang in the middle of your bailiwick... Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |