[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-japanese] PCIパススルーを行うための手順
島田さん 竹部です。 パッチがコミットされましたね。 具体的にどういう時にPCIのBDF番号がずれるのでしょうか? この方法を使う場合でもDevice,Function番号が記述されているので、 ずれても良いのはBus番号だけなのかなと思いましたが正しいでしょうか? 後、BDF番号とかをboot parameterにいっぱい書くのは面倒だし使い勝手が 悪い気がしていて、ワイルドカードみたいなものをsupportしてくれたら うれしいなぁと思っていたのですが、 この方法だとうまいことできたりしまうでしょうか? 以上 Yuji Shimada さんは書きました: > 現在の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 _______________________________________________ Xen-japanese mailing list Xen-japanese@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/mailman/listinfo/xen-japanese
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |