|
|
|
|
|
|
|
|
|
|
xen-japanese
Re: [Xen-japanese] PCIパススルーを行うための手順
産総研の須崎です。はじめて投稿します。
パススルーは興味があり試しているのですが、まだうまく行っていません。
よろしければ動作が確認されたマザーボード(BIOSのバージョンを含む)と
PCIデバイスを教えて頂けれると助かります。
ちなみにこちらで試しているのはマザーボードは Intel DQ35JO です。
Xen VT-dの設定については下記のHPを参考にしていました。
http://wiki.xensource.com/xenwiki/VTdHowTo
------
suzaki
>>From: Yuji Shimada <shimada-yxb@xxxxxxxxxxxxxxx>
>>Subject: [Xen-japanese] PCIパススルーを行うための手順
>>
>>現在のXenではPCIデバイスのPCIパススルーが行えるようになっています。
>>(IOMMU(I/O Memory Management Unit)内蔵のチップセットが搭載されている
>> マシンを使用することが条件)
>>
>>PCIパススルーとはゲスト・ドメインが直接PCIデバイスを操作することです。
>>
>>エミュレーション方式に代えて、PCIパススルーを使用することで、仮想化されて
>>いないOSからPCIデバイスを操作するのとほとんど代わりない性能を得ることが
>>できます。
>>現在、様々なPCIデバイスをPCIパススルーによって操作できます。
>>しかし、PCIパススルーで動かないPCIデバイスも存在していると考えています。
>>
>>ですので、問題が発生した方がいましたらご報告をお願いします。
>>なるべくご対応させていただきたいと思います。
>>
>>以下にPCIパススルーを行うための手順を示します。
>>
>>
>>[PCIパススルーを行うためのXen Unstable版の構築手順]
>> 1.Xen Unstableをネットワーク経由で取得。
>>
>> # hg clone http://xenbits.xensource.com/xen-unstable.hg
>> # cd xen-unstable.hg
>>
>> 2.pcibackドライバをビルトインする。
>>
>> # make linux-2.6-xen-config CONFIGMODE=menuconfig
>>
>> ----------設定----------
>> Xen --->
>> <*> PCI-device backend driver
>> ----------設定----------
>>
>> 3.Xenをビルドする。
>>
>> # make
>>
>> 4.Xenをインストールする。
>>
>> # make install
>>
>> 5.modules.depの作成
>>
>> # depmod -F /boot/System.map-2.6.18.8-xen 2.6.18.8-xen
>>
>> 6.イニシャルRAMディスクの作成
>>
>> # mkinitrd -f /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen
>>
>> 7.ゲスト・ドメインに割り当てるPCIデバイスのBDF(Bus No. Device No.
>> Function No.)を確認する。
>> (今回はIDEカードとNICを割り当てることとして話を進める。)
>>
>> # lspci
>>
>> 00:19.0 Ethernet controller: Intel Corporation 82566DM-2
>> Gigabit Network Connection (rev 02)
>> ...
>> 01:01.0 Mass storage controller: Integrated Technology Express, Inc.
>> IT/ITE8212 Dual channel ATA RAID controller (rev 13)
>> ...
>>
>> 8.ブート・ローダの"reassigndev"パラメータでゲスト・ドメインに割り当てる
>> PCIデバイスのリソースの再割当を行う。
>> また、"pciback.hide"パラメータでゲスト・ドメインに割り当てるPCIデバイス
>> をpcibackドライバでバインドする。
>>
>> # vi /boot/grub/grub.conf
>>
>> ----------編集----------
>> title Xen-3.4-Unstable (2.6.18.8-xen)
>> root (hd0,0)
>> kernel /boot/xen-3.4-unstable.gz iommu
>> module /boot/vmlinuz-2.6.18.8-xen ro root=LABEL=/
>> reassigndev=0000:00:19.0,0000:01:01.0
>> pciback.hide=(0000:00:19.0)(0000:01:01.0)
>> module /boot/initrd-2.6.18.8-xen.img
>> ----------編集----------
>>
>> 9.Xen Unstable版を起動する。
>>
>> # reboot
>>
>>
>>[割当手順]
>> 1.ゲスト・ドメインに割り当てるPCIデバイスのBDFをゲストの設定ファイルに
>> 記載する。
>>
>> # vi /etc/xen/GUEST.hvm
>>
>> pci = [ '00:19.0','01:01.0' ]
>>
>> 2.ゲスト・ドメインを起動する。
>>
>> # xm create /etc/xen/GUEST.hvm
>>
>> 3.割り当てたPCIデバイスをゲスト・ドメインから使用できるかを確認する。
>> (ゲスト・ドメインとしてLinuxを使用したときの確認方法)
>>
>> # lspci
>>
>> 00:10.0 Ethernet controller: Intel Corporation 82566DM-2
>> Gigabit Network Connection (rev 02)
>> ...
>> 01:09.0 Mass storage controller: Integrated Technology Express, Inc.
>> IT/ITE8212 Dual channel ATA RAID controller (rev 13)
>> ...
>>
>>
>>[補足]
>> BDFを使用したPCIデバイスの指定方法ではブート時に番号が変更されてしまう
>> 恐れがあります。
>> しかし、デバイス・パスと呼ばれるパラメータを用いてPCIデバイスを指定する
>> と、そのデバイス・パスは変更されることなく、永続的なパラメータとして
>> ゲスト・ドメインに割り当てるPCIデバイスを指定することができます。
>> デバイス・パスの書式は以下のようになっています。
>>
>> <hid>[:<uid>]-<dev>.<func>[-<dev>.<func>[...]]
>>
>> 例) PNP0A03:100-1c.1-00.0
>>
>> このデバイス・パスを用いて、ゲスト・ドメインに割り当てる予定のPCIデバイス
>> を指定する"guestdev"というブート・パラメータをdom0 Linuxに追加するパッチ
>> がXen Unstableに投稿されています。(現在、未採用)
>>
>> 例) reassign_resources guestdev=PNP0A03:100-1c.1-00.0,PNP0A03:100-1d.7
>>
>>
>> (参照)http://lists.xensource.com/archives/html/xen-devel/2008-12/msg01093.html
>>
>> BDFからデバイス・パスに変換することができるスクリプト(device_path.py)も
>> 投稿されています。
>>
>>
>> (参照)http://lists.xensource.com/archives/html/xen-devel/2008-12/msg01116.html
>>
>> このスクリプトは以下のように使用できます。
>>
>> # chmod 755 device_path.py
>> # device_path.py 07:00.0
>>
>> PNP0A03:100-1c.1-00.0
>>
>>
>>ご質問等ありましたらお気軽にどうぞ。
>>それでは、よろしくお願いします。
>>--
>>NECシステムテクノロジー 島田雄二
>>
>>
_______________________________________________
Xen-japanese mailing list
Xen-japanese@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-japanese
|
|
|
|
|