On Tue, Sep 01, 2009 at 02:00:43AM -0400, Han, Weidong wrote:
> 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>
Acked-by: Jean Guyader <jean.guyader@xxxxxxxxxx>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|