Xen 4.0でのVGA passthrough (VGAパススルー)

Xen4.0でVGA passthroughが出来るようになったので、ちょっと調べてみた。この機能を使うとゲストOSが、VGAカードを直接使うことが出来るようになる。今までは、性能が出ないVNC経由ぐらいしかグラフィック表示方法しかなかったが、これでゲームや動画をするなど高い性能が必要な場合にも使えるようになる。
まずは、実際の起動画面であるがこちらが参考になる。ゲストにVGAを取られてしまうため、Dom0は、悲しくもキャラクターターミナルで使っている。
The Final Solution: Open Source Xen VGA Passthrough - YouTube
そして、立ち上がったゲストOSのデバイス名を見たりしている画面はこちら。Xenのブロックデバイスなどが見える。
Xen Virtualization, VT-d, VGA Passthrough, & Windows XP HVM Virtual Machine: Super PI 32M Benchmark - YouTube
これだけ見ると、ゲストがホストのVGAを乗っ取ってしまうので、便利な技術には見えない。しかし、以前XenSummit2008のIan Prattの基調講演で、ゲストとホストの画面を切り替えていたのを見たことがある。とすると、もう少し開発が必要だとおもう。

さて、試すのに必要な環境だが、IntelのVT-dが動く環境かつ以下のVGAカードがある必要がある。一言で言って、IntelNVIDIAのグラフィックチップ。AMDは、パッチが昨日投稿されたばかりであることから人柱になるには良いかもしれない。
http://wiki.xensource.com/xenwiki/XenVGAPassthroughTestedAdapters
そして、該当ドメインの設定ファイルに以下の一行を書いて起動する。gfx_passthruは、VGA passthroughのフラグで1だと利用するになる。そしてDom0のlspciで後ろのyy:zz.nを調べる。

gfx_passthru=X pci=['yy:zz.n']

ついでながら、Linux KVMでは、実装が足りず動いていないようだ。手を動かす人募集かな?
PCIe VGA Passthrough works---almost — Linux KVM

11月15日追記

Multi GPU PassthroughというものがXenServer5.6にはあったようだ。
404 - Page not found

12月11日追記

概要を書いている資料があった。さらに、引用されているパッチが、大変参考になる。
http://staff.science.uva.nl/~delaat/sne-2008-2009/p22/report.pdf