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

RE: [Xen-devel] possible to give/switch direct graphics hw access to doms?


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Jean Blignaut" <jean@xxxxxxxxxxx>
  • Date: Tue, 9 May 2006 17:49:22 +0200
  • Delivery-date: Tue, 09 May 2006 08:47:18 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcZvWwHxZEPXQLjbQHieSoIxecryZAAADw7QAAJJ6uAAAYs4IAD2zRMQAArN9rAAAWGxQAACUKXQ
  • Thread-topic: [Xen-devel] possible to give/switch direct graphics hw access to doms?


>-----Original Message-----
>From: Petersson, Mats [mailto:Mats.Petersson@xxxxxxx] 
>Sent: Tuesday, May 09, 2006 4:48 PM
>To: Jean Blignaut; xen-devel@xxxxxxxxxxxxxxxxxxx
>Subject: RE: [Xen-devel] possible to give/switch direct graphics hw access >to 
>doms?

>Jean Blignaut wrote:
>> 
>> Why not use suspend resume?
>> You could simulate say a keyboard sleep button push or some 
>> thing to make the guest OS  go into sleep mode while 
>> switching the full power of you graphichs hw over to another 
>> OS (As I recall there is a special mode that the x86 uses for 
>> powermanagement interrupts etc. why not use an existing 
>> system and just expand on it?)

>The problem with a SUSPEND/RESUME button is that it's controlled almost
>entirely by the BIOS - which means that the hypervisor will not have
>much say in what happens. Ok, so in SVM (AMD's solution) we could very
>well intercept the SMI (System Management Interrupt) that happens due to
>the button-press, but unfortunately, the hardware that we need to deal
>with, primarily the south-bridge, will need specific hardware support
>for each model (and perhaps also different depending on each hardware
>platform, i.e. some models of a machine will need one setup, another
>model will need another setup), and we'd have to replicate all the
>power-management code in the BIOS and make it play with the hypervisor.
>It could probably be done, but it's not going to be easy, and I think
>it's more sensible to actually use a para-virtualized driver for the
>Windows system, and then use a back-end/front-end model as per normal
>Xen to achieve decent performance using the native driver in Dom0. 

>> 
>> I think that the problem with remote desktop and vnc has is 
>> that its all very well for run of the mill office apps and 
>> server stuff (I'm actually unix sysadmin at a small isp so 
>> excuse the "stuff" shorthand ;-) ) the real areas where what 
>> I'm asking would be use full is for powerfull graphics apps 
>> and games. I don't think you'll find any one happily  working 
>> in may/3d studio max/photoshop etc. via vnc or remotedesktop 

>Sure. Game-playing would be another place where graphics performance is
>critical. I don't think Xen will be ready for either of these types of
>apps for some time... 

Yeah I was going to add games to my list but forgot.
So given these factors it would be best (in theory) to implement some thing 
like this in BIOS?

--
Mats
> 
> -----Original Message-----
> From: Petersson, Mats [mailto:Mats.Petersson@xxxxxxx]
> Sent: Thursday, May 04, 2006 1:26 PM
> To: Jean Blignaut; xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: RE: [Xen-devel] possible to give/switch direct 
> graphics hw access to doms?
> 
> > -----Original Message-----
> > From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> > [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Jean 
> > Blignaut
> > Sent: 04 May 2006 11:21
> > To: xen-devel@xxxxxxxxxxxxxxxxxxx
> > Subject: [Xen-devel] possible to give/switch direct 
> graphics hw access 
> > to doms?
> > 
> > 
> > I hope this is the right place to be posting this question.
> > 
> > I was wondering about the possibility of giving full access to 
> > graphics hw to domU perhaps especially when intel VT or AMD 
> pacifica 
> > is available?
> 
> In short: no.
> 
> The problem here isn't so much the ownership of the graphics 
> (that CAN be dealt with), but the fact that in HVM (Intel 
> VT/AMD SVM) we "lie" to the DomU about where it's memory is, 
> because most operating systems assume that memory starts 
> roundabout address zero, and goes up to whatever number of 
> megabytes - which of course is true for Dom0, but DomU's 
> won't have that setup, so we fake it to LOOK like it is by 
> using page-tables that are "adjusted" when the guest sets 
> it's paging up. 
> 
> However, the graphics card will have direct memory accessing 
> - which means that the graphics card will need to be told 
> about the ACTUAL physical address (not the fake one we told 
> the guest about). 
> 
> The solution is an IOMMU device, which is basicly a 
> translation system to translate a "fake physical" to "actual 
> physical" address. There is a GART in the AMD x86-64 
> processors that COULD be used for this purpose, but currently 
> there's no code to support this [although I believe it's 
> being worked on]. 
> 
> > 
> > I have been reading every thing I can find on the subject 
> as it would 
> > be most use full for my personal desktop system (and I'm 
> sure I'm not 
> > alone ... )
> 
> No, this question comes up every few weeks or so, and I'm 
> sure there are MORE people who actually want it than those 
> that ask about it... 
> > 
> > To be able to share or in some way switch which OS has 
> access to your 
> > graphics hardware (amongst other such as sound etc.)
> 
> Currently you can (sort of) share it, but if you want to run 
> Windows on a HVM system, the best solution is to use "Remote 
> Desktop" and use the Dom0 display for your display device. 
> Similarly, VNC works well for Linux, whether it's 
> para-virtual or HVM... 
> > 
> > I realize that this is only realy use full in desktop/workstation 
> > situations but I have been pondering the subject for some years.
> > 
> > One problem I guess would be the state/mode of the graphics 
> hardware 
> > in different doms - whitch is probably why they could not 
> share it at 
> > the same time - but perhaps switching is more feasible. I seem to 
> > remember that there was an INT 10 function in vga (pre svga) that 
> > could store the state of all the registers etc. on the 
> card. Combined 
> > with some sort of frame buffer (that only gets used when graphics 
> > operation is suspended ex. A nother dom has the graphhw at 
> the moment) 
> > you could perhaps store the mode, state and graphichs ram 
> of each dom 
> > and be able to restore each in turn?
> 
> The first criteria in this case would be that the DomU is 
> aware of the fact that it's on a virtual machine - otherwise, 
> the DomU can't perform the "save state" function - most 
> drivers have that functionality, because that's how 
> power-saving the graphics card works, including "Suspend to 
> ram" and "Hibernate", etc. But it's a case of "How to tell 
> the driver to do this". 
> 
> There is of course the problem that if the OS isn't helping 
> out when you're saving state (as the OS does in Power-saving 
> state-save), then you may have to STORE ALL OF THE 
> FRAME-BUFFER, which could easily be 128MB - which in turn 
> means more memory for each domain. 
> 
> I think you really need to have specific drivers that are 
> virtualization aware (para-virtualized drivers) to solve 
> this. In this case, you could for example allow the card to 
> not USE all of it's frame-buffer for one particular guest, 
> and have several sections of frame-buffer, one for each 
> guest. That way, there will be no need to store 128+MB of 
> frame buffer each time. 
> 
> Another solution is of course a "simple but efficient" 
> para-virtualized driver, which allows the guest to just pass 
> the drawing information from the primitives in the guest 
> directly to the driver of the actual display (the latter is 
> either DIRECTLY to the driver with some sort of switching, or 
> to an application that draws within a window). In this case, 
> the driver in the guest doesn't actually draw anything, or 
> even have any real hardware (a faked entry in the PCI device 
> config space that we provide, so that the driver can be 
> loaded with whatever Plug&Play mechanism the OS uses). 
> 
> > 
> > Forgive my ignorance but the last time I seriously spent time with 
> > lowlevel hw programming was on 486 hardware :)
> 
> That's probably some time ago then ;-) But I'd say you have 
> the right questions, give or take a bit... 
> 
> > 
> > Regards
> > Jean Blignaut
> > 
> 
> 
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.392 / Virus Database: 268.5.3/331 - Release 
> Date: 5/3/2006
> 
> 
> -- 
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.392 / Virus Database: 268.5.5/334 - Release 
> Date: 5/8/2006
>  
> 
> -- 
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.392 / Virus Database: 268.5.5/334 - Release 
> Date: 5/8/2006
>  
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
> 
> 


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.392 / Virus Database: 268.5.5/334 - Release Date: 5/8/2006
 

-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.392 / Virus Database: 268.5.5/334 - Release Date: 5/8/2006
 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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