Microsoft PowerPoint - IO_Pass-through_XenSummitTokyo2008_jp.ppt

Similar documents
セキュアVMの アーキテクチャ概要

本機をお使いの方へ

1 2

サーバのプロパティの表示

スライド 1

WinDriver PCI Quick Start Guide

94

1 2

HA8000シリーズ ユーザーズガイド ~BIOS編~ HA8000/RS110/TS10 2013年6月~モデル

サーバのプロパティの表示

Microsoft Word - DS50-D B_S711_BIOS_Manual.doc

FUJITSU ULTRA LVD SCSI Host Bus Adapter Driver 3.0 説明書

1 144

NEC Express5800 シリーズ N /158 Fibre Channel コントローラ ドライバインストール手順書 A

Microsoft Word - DS50-D A_S501B_BIOS_Manual.doc

橡EN1165.PDF

1 2

iStorage NS47Pユーザーズガイド

対象製品と後継機種の比較表 1. Qseven: SOM-3565 vs. SOM-3567/-3568 SOM-3565 SOM-3567 SOM-3568 Compliance Qseven v1.2 Qseven 2.1 Qseven 2.1 CPU Intel Atom N2600 Inte

Express5800/R320a-E4/Express5800/R320b-M4ユーザーズガイド

- 目次 - 1 改訂履歴 はじめに 事前準備 作業 PC の準備 BIG-IP Virtual Edition のメディア保存 Hyper - V へのアクセス BIG-IP Virtual Edition


1 122

1 124

Microsoft Word - DS50-D A_SX505_BIOS_Manual.doc

Express5800/R110a-1Hユーザーズガイド

PC STATION E Series BIOS セットアップ マニュアル BIOS セットアッププログラムについて BIOS セットアッププログラムとはパソコンの BIOS 設定を確認したり 変更するためのプログラムです セットアッププログラムは マザーボード上のフラッシュメモリに格納されているた

NEC Express5800/E110b-Mユーザーズガイド

富士通PRIMERGYサーバ/ETERNUSストレージとXsigo VP560/VP780の接続検証


PRIMERGY 環境設定シート

ポート拡張オプション(10GBASE-T×2)

IP1_ug.book

BitVisor Updates in 2016

iStorage NS500Rbユーザーズガイド

1 概要

EQUIUM EQUIUM 1

T120Ra-1ユーザーズガイド

HA8000-bdシリーズ RAID設定ガイド HA8000-bd/BD10X2

Express5800/120Lf 1. Express5800/120Lf N N N Express5800/120Lf Express5800/120Lf Express5800/120Lf ( /1BG(256)) ( /1BG(256)) (

1 142

Express5800/320Fc-MR

Express5800/120Ra-1

1 概要


PRIMERGY RX600 S6 ご使用上の留意・注意事項

RF2_BIOS一覧

Microsoft Word - DS50-D A_E701_BIOS_Manual.doc

NVMe Users Guide-JP

PF1000_intro5

Express5800/i110Rc-1hユーザーズガイド

REX-5051fx,ex User's Manual

Microsoft Word - DS50-D A_S505A_BIOS_Manual.doc

ソフトウェアセキュリティ研究チーム ポスター・デモ紹介

Express5800/110Geユーザーズガイド

EQUIUM EQUIUM S5010 1

N Express5800/R320a-E4 N Express5800/R320a-M4 ユーザーズガイド

Express5800/R320a-E4, Express5800/R320b-M4ユーザーズガイド

BMC Configuration ユーザーズガイド

Express5800/320Fa-L/320Fa-LR


Express5800/110Gbユーザーズガイド

MF02_BIOS_R00.xls

Express5800/320Fa-L/320Fa-LR/320Fa-M/320Fa-MR

BIOS 設定書 BIOS 出荷時設定 BIOS 設定を工場出荷状態に戻す必要がある場合は 本書の手順に従って作業をおこなってください BIOS 設定を変更されていない場合は 本書の作業は必要ありません BIOS 出荷時設定は以下の手順でおこないます スタート A) BIOS の Setup Uti

LANカード(10GBASE)

00-COVER.P65

B7FH-A [ 日本語 ] PRIMERGY L200 取扱説明書追記 訂正事項 このたびは 弊社の PRIMERGY( プライマジー ) L200 をお買い求めいただきまして誠にありがとうございます 本サーバに添付されております PRIMERGY L200 取扱説明書 (P3F1-1

Mvk-xf6k.pm6

Express5800/110Ee (2002/01/22)

1 概要

PRIMEQUEST 2000シリーズ コンバージドネットワークアダプタ 環境設定シート(Legacy ROM)

1 概要

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1) * ( /2) * RAID A. SATA B. BIOS SATA ( 1) C. RAID BIOS RAID D. SATA RAID/AHCI 2 SATA M.2 SSD ( 2) ( (

Express5800/110Ee Pentium 1. Express5800/110Ee N N Express5800/110Ee Express5800/110Ee ( /800EB(256)) ( /800EB(256) 20W) CPU L1 L2 CD-

PAシリーズBIOSマニュアル

Microsoft iSCSI Software Targetを使用したクラスタへの共有ディスク・リソースの提供

Microsoft Word - nvsi_090203_r1_sanboot_vaultdr.doc

PowerPoint プレゼンテーション

Express5800/120Mc

Express5800/140Hb (2002/01/22)

REX-5051W/FW/EW PC Card Adapter

Express5800/110Gd-Sユーザーズガイド

ご使用上の注意

PowerPoint Presentation

ドライバインストールガイド

今週の進捗

kaisetu.book

1 概要

SD-PE4SA3ES4L_M12

Microsoft Word - ADLINK nuPRO-965LV.doc

untitled

Express5800/140Ma

Express5800/120Ed

背景 : クライアント仮想化と USB クライアント仮想化では ユーザ VM と同時に複数のサービス VM が実行され さまざまな機能を提供する 一例を挙げると 認証機能の提供 : USB 接続のスマートカードリーダや生体認証装置を利用 インスタントオンの VoIP やメッセンジャーアプリケーション

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1) * ( /2) * RAID A. SATA SSD B. BIOS SATA ( 1) C. RAID BIOS RAID D. RAID/AHCI 2 SATA SSD ( 1) ( ( 3) 2

PRIMEQUEST 1000 シリーズ IO 製品 版数の確認方法

Express5800/120Le

HP ProLiant 500シリーズ

Transcription:

パススルー I/O の実装と今後 2008 年 11 月 21 日島田雄二 NECシステムテクノロジー

目次 1. パススルー I/O の実装 2. 今後の予定 3. パススルー I/O の課題 4. まとめ 2 NEC Corporation 2008

1. パススルー I/O の実装

パススルー I/O とは Domain へ I/O デバイスを割り当て Guest ソフトウェアから直接制御する HBA を割り当て ストレージへ高速アクセス NIC を割り当て ネットワークへ高速アクセス Domain #1 HBA#1 Dual Port NIC 割り当て Domain #2 HBA#2 本発表では HVM Domain のパススルー I/O について説明する 4 NEC Corporation 2008

MMIO 仮想化 パススルー I/O 概要 (1) Guest Physical AddressからMachine Addressへページ単位で対応付け I/Oデバイスのリソース再割り当て BIOSが割り当てたMMIOリソースが ページ サイズにアラインされていなければ Domain0 Linuxがページ サイズにアラインされているMMIOリソースをI/Oデバイスに再割り当て 改造点 1 コンフィグレーション レジスタ アクセス仮想化 ioemu は Guest ソフトウェアからのコンフィグレーション レジスタ ア クセスをトラップし ビットのタイプに応じてそのままパススルーまたはエミュレート改造点 2 5 NEC Corporation 2008

パススルー I/O 概要 (2) DMA 仮想化 デバイス ドライバはI/OデバイスにGuest Physical Addressを書き込む I/OデバイスはGuest Physical Addressを使用してDMAを実行 チップセット上のIOMMUがGuest Physical AddressをMachine Addressに変換 ポート I/O 仮想化 Hypervisor は IN/OUT 命令をトラップし Guest ソフトウェアの代わりに I/O デバイスにアクセス 割り込み仮想化 Hypervisor は I/O デバイスから割り込みを受け 割り込みコントローラをエミュレートし 割り込みを HVM Domain へインジェクト 6 NEC Corporation 2008

Net work 問題 改造点 1 I/O デバイスのリソース再割り当て BIOS により割り当てられたリソースがページ サイズにアラインされていなければ HVM Domain への I/O デバイス割り当てに失敗 改造内容 DISK Error: pci: 0000:00:1d.0: non-page-aligned MMIO BAR found. BIOSが割り当てたリソースを開放し I/Oデバイスにページ サイズにアラインされたリソースを再割り当て リソース再割り当て対象のI/Oデバイスを指定するブート パラメータを追加 NIC HBA 00:1d.1 00:1d.0 00:01.0 page size 10004000h 10003000h 10002000h Memory Resource assigned by BIOS (Machine Address Space) reassigndev=00:1d.0, 00:1d.1, 00:01.0 Boot Xen 00:1d.1 00:1d.0 00:01.0 10004000h 10003000h 10002000h Reassigned Memory Resource (Machine Address Space) BIOS によるリソースの割り当て状況に関わらず HVM Domain に I/O デバイスを割り当てることが可能に Boot HVM Domain No Error 7 NEC Corporation 2008

改造点 2 コンフィグレーション レジスタ アクセス仮想化 (1) 問題 Configuration Header Type 0 以外のレジスタはリード オンリーであった為 HVM Domain に割り当てることのできる I/O デバイスが限定 改造内容 Guest ソフトウェアが次のレジスタにリード / ライト アクセス可能とし 他のレジスタは隠蔽 Configuration Header Type 0 MSI Capability Structure MSI-X Capability Structure PCI Express Capability Structure PCI Power Management Capability Structure Vital Product Data Capability Structure Vendor Specific Capability Structure Device Specific Register (HeaderとCapability Structureを除く ) 8 NEC Corporation 2008

改造点 2 コンフィグレーション レジスタ アクセス仮想化 (2) 改造内容 ( 続き ) Guestソフトウェアが直接制御可能なビットはパススルー BIOS 設定値を保護すべきビット 特殊な処理が必要なビットはエミュレート Configuration Access by Guest Software ioemu Emulated Configuration Registers I/O Device Physical Configuration Registers Pass-through type Emulate type PCI Express Capability Structure 31 16 15 0 PCI Express Capability Register Device Status Link Capabilities Link Status Slot Capabilities Slot Status Root Capabilities Root Status Device Capabilities Next Pointer Device Control Link Control Slot Control Root Control HVM Domain に USB や SAS HBA など様々なデバイスを割り当て可能に 不正な Guest ソフトウェアからシステム全体を保護 Capability ID Pass-through type Emulate type offset Capability Pointer Capability Pointer + 04h Capability Pointer + 08h Capability Pointer + 0Ch Capability Pointer + 10h Capability Pointer + 14h Capability Pointer + 18h Capability Pointer + 1Ch Capability Pointer + 20h 9 NEC Corporation 2008

2. 今後の予定

今後の予定 (1) Guest ソフトウェアから I/O デバイスの電源制御 デバイスの電源制御 / 状態レジスタ (PMCSR) による直接制御 D0~D3hotをサポート 省電力化 high power low power 割り込みのリダイレクトを削減 Xen 3.3.0 において, 割り込みは一つのプロセッサに集中 ( 仮想プロセッサ 0 番 ) そのプロセッサが Guest ソフトウェアが指定したプロセッサでなければ割り込みをリダイレクト 割り込みのリダイレクトを削減するために Guest ソフトウェアが設定したプロセッサへの割り込み配送をサポート 割り込み配送のパフォーマンス向上 11 NEC Corporation 2008

ioemu のログ改善 今後の予定 (2) ioemu のログに日付情報 プロセス ID を付加 example [2008-11-21 16:10:05 4567] can't store dev vc name for domid 1 in /parallel/0 from a stub domain [2008-11-21 16:10:06 4567] qemu_map_cache_init nr_buckets = 10000 size 3145728 [2008-11-21 16:10:06 4567] shared page at pfn 1fffe 障害発生時の解析負担軽減 Stub Domain によるパススルー I/O をサポート Stub DomainはDomain0の代わりにI/Oをエミュレーション Stub Domainを使用したパススルー I/Oを可能に スケーラビリティ向上 Domain0 縮小 Dom0 HVM Dom Hypervisor Hardware Stub Dom HVM Dom ioemu 12 NEC Corporation 2008

3. パススルー I/O の課題

課題 1 パススルー I/O に適さないデバイス デバイス ドライバから取得した Physical Address を内部メモリへのアクセスに使用する I/O デバイスは動かない Device Driver Processor Access with Machine Address Pass Guest Physical Address Pass Guest Physical Address Translate Chipset (IOMMU) System Memory Access with Guest Physical Address PCIe Host Interface BAR Firmware Internal Processor Internal Bus Internal Memory I/O Device Access with Guest Physical Address Some Interface Internal Memory Access DMA パススルー I/O を使用する際に デバイス ドライバが使用する Physical Address は Guest Physical Address であり Machine Address とは異なる DMA 時は IOMMU が Guest Physical Address を Machine Address へ変換する 内部メモリへのアクセス時は IOMMU は Address を変換しない その結果 アクセスに失敗する 14 NEC Corporation 2008

課題 1 この問題を引き起こす 仮想化の穴 I/O デバイスがデバイス ドライバから取得した Guest Physical Address を DMA 以外の目的で使用する場合は Guest Physical Address を Machine Address へ変換することができない これは IOMMU ベースの Hypervisor で共通する問題 Adapter Vender が I/O デバイスをパススルー I/O に適する設計にしてほしい 15 NEC Corporation 2008

課題 2 ioemu が PCIe をサポートしていない ioemu は以下の機能が無い MMCFG メカニズム メモリ空間にアクセスすることでコンフィグレーション レジスタにアクセス オフセットが 100h から FFFh のレジスタへのアクセスに必要 100h から FFFh にある Capability Structure 例 : Device Serial Number Capability Structure PCI Express VSEC Structure Root Port PCIe 固有の機能を制御するレジスタを持つデバイス Advanced Error Reporting (AER) PCIe エラーを通知 PCIe ホット プラグ ACPI ホット プラグより新しいホット プラグの仕組み その結果 Guest ソフトウェアが 必要なレジスタ Capability Structure へアクセスできない Guestソフトウェアからみたトポロジが PCIe マシンではない Guestソフトウェアは PCIeエラーをリカバリできない ACPIホット プラグを使用しなければならない 16 NEC Corporation 2008

課題 2 PCIe をサポートするための開発 まずはMMCFGメカニズム (1) とRoot Portエミュレータ (2) を ioemuに追加 次に 他のものを実装 Guest Physical Address Space FFF...FFFh F000 0000h E000 0000h MMCFG <256MB> (1) Memory Processor Root Port Virtual Machine Topology Host Bridge Legacy Device CD-ROM Display KB / Mouse RTC / PI DMAC I/O APIC PIT / HPET COM ISA Bridge IDE Cont. ACPI Cont. VGA Cont. Platform Device 0h Passthrough Device (2) Assigned Processor / Memory / I/O Emulated I/O Device 一人の開発者 / 一つのチームが全てを開発することは難しい みなさんの協力が必要 17 NEC Corporation 2008

4. まとめ

まとめ パススルー I/O は実用的になってきた 我々は今後もパススルー I/O 関連の機能を開発していく パススルー I/O には解決すべき課題が残っている 様々な技術者の力が必要 19 NEC Corporation 2008

謝辞 皆様に深く感謝致します 関係者の方々 Xen コミュニティ技術者の方々 20 NEC Corporation 2008