KVM for IA64. Anthony Xu

Similar documents
Intel Virtualization Technology Roadmap and VT-d Support in Xen

Making Nested Virtualization Real by Using Hardware Virtualization Features

Nested Virtualization Update From Intel. Xiantao Zhang, Eddie Dong Intel Corporation

I/O virtualization. Jiang, Yunhong Yang, Xiaowei Software and Service Group 2009 虚拟化技术全国高校师资研讨班

Live Migration of vgpu

Intel Atom Processor Based Platform Technologies. Intelligent Systems Group Intel Corporation

Intel Cache Acceleration Software for Windows* Workstation

Intel Desktop Board DZ68DB

Intel Graphics Virtualization on KVM. Aug KVM Forum 2011 Rev. 3

Intel Transparent Computing

KVM as The NFV Hypervisor

Practical Xen Testing at Intel

Graphics Pass-through with VT-d

Evolving Small Cells. Udayan Mukherjee Senior Principal Engineer and Director (Wireless Infrastructure)

Intel Server Board S2600CW2S

Intel G31/P31 Express Chipset

SR-IOV support in Xen. Yaozu (Eddie) Dong Yunhong Jiang Kun (Kevin) Tian

Design of Vhost-pci - designing a new virtio device for inter-vm communication

Intel 945(GM/GME)/915(GM/GME)/ 855(GM/GME)/852(GM/GME) Chipsets VGA Port Always Enabled Hardware Workaround

Intel Desktop Board D945GCLF2

Intel 848P Chipset. Specification Update. Intel 82848P Memory Controller Hub (MCH) August 2003

Intel and the Future of Consumer Electronics. Shahrokh Shahidzadeh Sr. Principal Technologist

LED Manager for Intel NUC

Runtime VM Protection By Intel Multi-Key Total Memory Encryption (MKTME)

Intel Desktop Board DH61SA


Interrupt Swizzling Solution for Intel 5000 Chipset Series based Platforms

TLBs, Paging-Structure Caches, and Their Invalidation

Intel Desktop Board DP67DE

Intel Setup and Configuration Service Lite

Intel Setup and Configuration Service. (Lightweight)

Upgrading Intel Server Board Set SE8500HW4 to Support Intel Xeon Processors 7000 Sequence

Intel s Architecture for NFV

Enhancing pass through device support with IOMMU. Haitao Shan Yunhong Jiang Allen M Kay Eddie (Yaozu) Dong

Intel Graphics Virtualization Technology. Kevin Tian Graphics Virtualization Architect

Intel Desktop Board D946GZAB

Intel Desktop Board DH61CR

Intel Desktop Board DG41CN

Intel Desktop Board D975XBX2

GraphBuilder: A Scalable Graph ETL Framework

Extending Energy Efficiency. From Silicon To The Platform. And Beyond Raj Hazra. Director, Systems Technology Lab

INTEL PERCEPTUAL COMPUTING SDK. How To Use the Privacy Notification Tool

Intel Virtualization Technology for Directed I/O Architecture Specification

Intel Server Board S5520HC

Intel Desktop Board DG31PR

Intel 852GME/852PM Chipset Graphics and Memory Controller Hub (GMCH)

Intel Desktop Board DP55SB

Intel Desktop Board DG41RQ

Intel Xeon Phi Coprocessor. Technical Resources. Intel Xeon Phi Coprocessor Workshop Pawsey Centre & CSIRO, Aug Intel Xeon Phi Coprocessor

Live Migration of vgpu

Intel Education Theft Deterrent Release Note WW16'14. August 2014

Intel Desktop Board D945GCCR

Lenovo ThinkCentre M90z with Intel vpro Technology. Stefan Richards Intel Corporation Business Client Platform Division

The Transition to PCI Express* for Client SSDs

Intel Unite. Intel Unite Firewall Help Guide

Intel Desktop Board DQ57TM

Intel Server Board S1200BTS

Intel Server Board S2400SC

Intel Platform Administration Technology Quick Start Guide

Intel 6400/6402 Advanced Memory Buffer

The Intel Processor Diagnostic Tool Release Notes

Intel vpro Technology Virtual Seminar 2010

Intel Cache Acceleration Software - Workstation

Sample for OpenCL* and DirectX* Video Acceleration Surface Sharing

GUID Partition Table (GPT)

Intel Server Board S2600STB

Intel Desktop Board D915GUX Specification Update

Innovating and Integrating for Communications and Storage

Intel Desktop Board D915GEV Specification Update

How to Create a.cibd File from Mentor Xpedition for HLDRC

Intel Desktop Board D945GCLF

Non-Volatile Memory Cache Enhancements: Turbo-Charging Client Platform Performance

How to Create a.cibd/.cce File from Mentor Xpedition for HLDRC

Intel Desktop Board D845PT Specification Update

OpenCL* and Microsoft DirectX* Video Acceleration Surface Sharing

Intel Desktop Board DQ35MP. MLP Report. Motherboard Logo Program (MLP) 5/7/2008

Intel 845G/845GL/845GV Chipset

Intel X48 Express Chipset Memory Controller Hub (MCH)

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI

Intel Desktop Board DH55TC

BIOS Update Release Notes

Intel Atom Processor E3800 Product Family Development Kit Based on Intel Intelligent System Extended (ISX) Form Factor Reference Design

Clear CMOS after Hardware Configuration Changes

Solid-State Drive System Optimizations In Data Center Applications

Drive Recovery Panel

Introduction to Embedded Bootloader. Intel SSG/SSD/UEFI

Intel Atom Processor D2000 Series and N2000 Series Embedded Application Power Guideline Addendum January 2012

Hardware-Assisted Mediated Pass-Through with VFIO. Kevin Tian Principal Engineer, Intel

Mobile Intel Pentium 4 Processor-M and Intel 852PM/GME/GMV Chipset Platform

Intel Desktop Board DQ35JO

Intel Virtualization Technology FlexMigration Application Note

BIOS Update Release Notes

Linux in Automotive From Open Source to Products

Expand Your HPC Market Reach and Grow Your Sales with Intel Cluster Ready

Intel 945G/945GM Express Chipset Intel Dynamic Video Memory Technology (DVMT) 3.0

BIOS Update Release Notes

Jim Harris Principal Software Engineer Intel Data Center Group

Intel RealSense D400 Series Calibration Tools and API Release Notes

Intel Virtualization Technology for Directed I/O

Intel Core TM Processor i C Embedded Application Power Guideline Addendum

Transcription:

KVM for IA64 Anthony Xu

Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. INTEL PRODUCTS ARE NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING, OR LIFE SUSTAINING APPLICATIONS. Intel may make changes to specifications and product descriptions at any time, without notice. All products, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice. Intel, processors, chipsets, and desktop boards may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are available on request. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright 2007 Intel Corporation. Throughout this presentation: VT-x refers to Intel VT for IA-32 and Intel 64 VT-i refers to the Intel VT for IA-64, and VT-d refers to Intel VT for Directed I/O 2

Agenda IA64 VT-i Architecture KVM/IA64 Architecture KVM/IA64 Status Support needed from host Linux kernel Call to action Q&A Demo 3

IA64 VT-i architecture - Overview APP APP Guest OS - A APP APP APP Guest OS - B APP Guest mode PSR.VM=1 Virtual Machine Monitor (VMM) VT-i i supported PAL VT-i i Supported Processor VMM mode PSR.VM=0 VT-i Architecture New VM bit in PSR to indicate operation mode New virtualization fault vector to capture Guests executing privileged instruction Provides instruction type and opcode upon virtualization fault 4

IA64 VT-i architecture - VMM/Guest Virtual Address Separation 63 6160 59 0 VRN Virtual Address (VPN, Offset) Guest Accessible (PSR.VM=1) VMM Accessible (PSR.VM=0) Virtual Region Number (bits 61-63) always accessible Guests run with PSR.vm = 1 One less virtual address bit available VMM runs with PSR.vm = 0 All supported virtual address bits are available 5

KVM/IA64 Architecture QEMU for Guest 1 QEMU for Guest 2 Guest Mode Guest 1 Guest 2 Transition Linux kernel Host Address space KVM driver VMM Mode GVMM Transition GVMM Guest Address space Host and Guest have separated address space and processor context Key components: QEMU: Emulate guest IO devices Guest VMM (GVMM): Handle CPU & memory virtualization KVM driver: Bridges between QEMU and GVMM Transition code is responsible for address space and processor context switch 6

QEMU Re-used existing QEMU device modules for IA64 Added IA64 build target Added IA64 conditional build into existing common code Modified qemu_kvm.c removed IA32 specific codes Enhanced apic.c to emulate SAPIC Legacy devices deliver interrupts through SAPIC No PIC on IA64 platform Explicit I/D cache sync upon copying data to guest Addresses IA64 split I/D L1 cache Doesn t track dirty page in Qemu VGA refresh all frame buffer 7

KVM Driver Modified kvm_main.c removed IA32 specific codes Removed mmu.c MMU is also arch specific Memory virtualization is implemented inside GVMM Replaced vmx.c with vti.c Responsible for creating virtualization environment Responsible of preparation tasks for transition Remove CPU virtualization and Memory virtualization logics Handle PAL call and SAL call emulation 8

GVMM Runs in VMM mode while code is in Guest address space Implemented as a host module, loaded by host Linux kernel Mapped to Guest address space by KVM Position Independent Code (PIC) Self-contain and doesn t reference Linux kernel/module symbol Each guest has its own private GVMM data (such as, VCPU, VPD) This data can be accessed by KVM with different mapping. Optimization: GVMM code can be shared 9

GVMM - Memory Virtualization Software managed TLB No need for shadow page table Guest TLB virtualization GVMM uses memory (STLB) to cache Guest TLB. The bigger the STLB, the higher the guest TLB hit. The bigger the STLB, the higher the cost to emulate guest TLB purge all. TLB miss handling GVMM searches STLB If found, translate from Guest address to machine address through P2M, then insert into TLB. Otherwise inject TLB miss to Guest. 10

GVMM - CPU virtualization Virtual processor description (VPD) Architected data structure CR, PSR Shared by VMM and PAL Required per virtual processor TLB related instructions virtualization Timer virtualization Interrupt virtualization IRR, ISR, EOI Hardware acceleration 11

GVMM -Transition Code Switch processor context Switch virtual address space 12

KVM/IA64 status Booted UP guest (Linux & Windows) Using open source GFW Passed internal stress tests. Reasonable performance Based on KVM18 release to be rebased and merged into the main tree. 13

Proposed Host Linux Enhancement Insert TR The code segment for inserting TR must be mapped by TR Global TLB purge Only one processor can do global TLB purge at a time PAL call and SAL call KVM needs to call host PAL calls or SAL call to emulate guest PAL calls or SAL calls. RID partition Need purge all TLB entries on transition between host and guest Propose: Add new kernel option rid_bit to reserve RIDs for Guest 14

Call to Action Merge the code into main tree ASAP Need community help Community helps to get PV driver Guest SMP support Save/Restore Live migration Guest NUMA support 15

Q&A 16

DEMO 17

GVMM -Transition Code Transition Code reside inside GVMM Host to Guest KVM switch RR6 to guest RR6 KVM insert a TR mapping for GVMM in region 6 KVM br.call to predefined transition entry point Switch to guest context br.ret b0 into GVMM Guest to Host KVM call transitions code Switch to host context( not change RR6) br.ret b0 into KVM KVM switch RR6 to host 19