« Wine64を試す | トップページ | Windows 7 パブリックベータ公開 »

2009年1月 9日 (金)

KVM PCIパススルー(失敗)

QEMU/KVM関連で失敗ネタが続いてしまうが、記録として残しておく。

カーネル2.6.28のKVMでVT-dによるPCIパススルーがサポート(virtualization.infoの記事)されたので、DELL Optiplex 755(Q35チップセット)で試してみた。ホストOSはUbuntu 9.04 α2を、ゲストOSはUbuntu 8.10をライブCDとして使用。

●オンボードのNIC(eth0)をゲストに割り当てる。
・dmesgで使用するデバイスのbus:dev.func番号を調べる。
・IOVが使用できない現状ではデバイスをホスト/ゲストで共有できないため、「sudo ifconfig eth0 down」でeth0を停止し、「sudo rmmod e1000e」でドライバをアンロード。
・「-pcidevice host=bus:dev.func番号」オプションを指定してkvmを起動。

一応割り当てはできたようで、図でeth1として認識されているDELL 82566DM-2がVT-dの機能で割り当てられた実デバイス、eth0(RTL-8139)のほうが、QEMUがエミュレートしたNICである。

しかし、eth1はネットワークアドレスが取得できず、通信できない。

ウェブを検索してみたところ、どうやらこちらのblogと同様の現象が発生しているようだ。
MLなども参照してみたが、ちょっと手間がかかりそうなので、また時間のあるときにKVM最新版を試してみようと思う。

【追記】
最新のKVM-82に上げたところ、KVM-79で表示されていた「BUG: kvm_destroy_phys_mem: invalid parameters (slot=-1)」というメッセージが出力されなくなった。ただし、IPアドレスが取得できず通信できない問題は解決せず。

【追記2】
成功例はこちら

Kvm_vtd

|

« Wine64を試す | トップページ | Windows 7 パブリックベータ公開 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/159342/43683051

この記事へのトラックバック一覧です: KVM PCIパススルー(失敗):

« Wine64を試す | トップページ | Windows 7 パブリックベータ公開 »