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

[Xen-devel] [PATCH 0/2 v2] graphics passthrough with VT-d



Hi all,

Recently, more and more people are interesting in gfx passthrough. But now 
xen-unstable doesn't support it, although some guys (Jean Guyader, Beng Heng, 
Ng) posted gfx passthrough patches. If xen-unstable includes gfx passthrough 
support, people can be easy to try it.

gfx passthrough is more complicated than other PCI device passthrough such as 
NIC, and is hard to use a generic approach for all gfx passthrough. But there 
are some necessary changes for gfx passthrough:
  1. disable emulated VGA adapter, instead use passthroughed gfx
  2. load VGA bios of the gfx to guest
  3. passthrough legacy VGA IO ports and MMIOs to guest

This patchset implements above common changes. Based on the common changes, we 
are investigating to support more gfx cards and guest OSs. We will post the 
hacks in future.

The patchset supports to passthrough the primary gfx and discrete gfx. With the 
patchset, virtualization friendly gfx cards can be passthroughed (e.g. Nvidia 
FX3800), IGD and many discrete gfx cards are not supported yet. 

This is easy to use, the only difference from other PCI passthrough is to add 
following lines to hvm configure file:
#----------------------------------------------------------------------------------------
# 0: no gfx passthru, 1: IGD passthru, 2: discrete gfx passthru, default is 0
gfx_passthru=2

and also pls passthrough a USB controller for keyboard/mouse use in guest. (Now 
there are some issues on USB controller passthrough with pv-ops dom0, so 
currently prefer to use 2.6.18 dom0.) In future, Jean said he would like to 
commit the patch to share the host keyboard/mouse with multiple vms. At that 
time, USB controller assignment is not needed.


v1 -> v2 changelogs:
  - Removed the code to nnlarge guest MMIO range to contain gfx card's large 
memory, because hvmloader will auto-size the MMIO hole
  - Implemented the VGA bios mapping and copying inside qemu, so that don't 
need to modify xc_hvm_build functions

The patchset is as follows:
1. PATCH 1/2: changes in xen-unstable
        - add a VGA type for gfx passthrough, and get the size of VGA bios of 
passthrouged gfx in hvmloader
        - add a config option 'gfx_passthru' for gfx passthrough

2. PATCH 2/2: changes in QEMU
        - disable emulated VGA adapter if there is a passthroughed gfx
        - retrieves VGA bios from host VGA BIOS address (0xC0000), then load it 
to guest VGA BIOS address
        - register/unregister legacy VGA I/O ports and MMIOs for passthroughed 
gfx


Signed-off-by: Ben Lin <ben.y.lin@xxxxxxxxx>
Signed-off-by: Weidong Han <weidong.han@xxxxxxxxx>
_______________________________________________
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®.