[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.