Interrupt Message Store

Slides:



Advertisements
Similar presentations
Content Overview Virtual Disk Port to Intel platform
Advertisements

Virtualization Dr. Michael L. Collard
Virtual Machine Technology Dr. Gregor von Laszewski Dr. Lizhe Wang.
虛擬化技術 Virtualization Techniques
Differentiated I/O services in virtualized environments
Virtualization and Cloud Computing
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
Network Implementation for Xen and KVM Class project for E : Network System Design and Implantation 12 Apr 2010 Kangkook Jee (kj2181)
Cloud Computing and Virtualization Sorav Bansal CloudCamp 2010 IIT Delhi.
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy.
Chapter 4 Structure of Operating Systems Copyright © 2008.
Virtualization for Cloud Computing
虛擬化技術 Virtualization and Virtual Machines
Networking Virtualization Using FPGAs Russell Tessier, Deepak Unnikrishnan, Dong Yin, and Lixin Gao Reconfigurable Computing Group Department of Electrical.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Jakub Szefer, Eric Keller, Ruby B. Lee Jennifer Rexford Princeton University CCS October, 2011 報告人:張逸文.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
Benefits: Increased server utilization Reduced IT TCO Improved IT agility.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Xen I/O Overview. Xen is a popular open-source x86 virtual machine monitor – full-virtualization – para-virtualization para-virtualization as a more efficient.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3: Operating Systems Computer Science: An Overview Tenth Edition.
Improving Network I/O Virtualization for Cloud Computing.
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
VirtualBox What you need to know to build a Virtual Machine.
CS533 Concepts of Operating Systems Jonathan Walpole.
PART II OPERATING SYSTEMS LECTURE 8 SO TAXONOMY Ştefan Stăncescu 1.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
High Performance Network Virtualization with SR-IOV By Yaozu Dong et al. Published in HPCA 2010.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Full and Para Virtualization
Operating-System Structures
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Kernel Modules – Introduction CSC/ECE 573, Sections 001 Fall, 2012.
Unit 2 VIRTUALISATION. Unit 2 - Syllabus Basics of Virtualization Types of Virtualization Implementation Levels of Virtualization Virtualization Structures.
1 PERFORMANCE DIFFERENTIATION OF NETWORK I/O in XEN by Kuriakose Mathew ( )‏ under the supervision of Prof. Purushottam Kulkarni and Prof. Varsha.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Open Source Virtualization Andrey Meganov RHCA, RHCX Consultant / VDEL
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Writing (and testing) device drivers without hardware PJ Waskiewicz, LAN Access Division, Intel Corp. Title.
Lecture 15: IO Virtualization
Virtualization for Cloud Computing
Virtual Machine Monitors
Virtualization D. J. Foreman 2009.
Kernel Design & Implementation
Is Virtualization ready for End-to-End Application Performance?
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Why VT-d Direct memory access (DMA) is a method that allows an input/output (I/O) device to send or receive data directly to or from the main memory, bypassing.
L2- Virtualization Technology
Virtualization Dr. Michael L. Collard
CS 6560: Operating Systems Design
DPDK API and Virtual Infrastructure
Virtualization overview
Virtualization Layer Virtual Hardware Virtual Networking
Virtualization Techniques
vDPA for Vhost Acceleration
Ideas for adding FPGA Accelerators to DPDK
Cloud computing mechanisms
Virtio/Vhost Status Quo and Near-term Plan
Accelerate Vhost with vDPA
Windows Virtual PC / Hyper-V
LINUX System : Lecture 7 Lecture notes acknowledgement : The design of UNIX Operating System.
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Outline Operating System Organization Operating System Examples
Virtualization Dr. S. R. Ahmed.
NVMe.
A Virtual Machine Monitor for Utilizing Non-dedicated Clusters
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Interrupt Message Store MEGHA DEY Linux Kernel Engineer Interrupt Message Store A scalable interrupt mechanism for the cloud

AGENDA Evolution of I/O virtualization Scalable I/O Virtualization (SIOV) architecture The interrupt story so far Need for Interrupt Message Store Interrupt Message Store advantages Linux* IRQ subsystem Hierarchical domains Linux IMS design IMS example use case Current status Summary

Evolution of I/O Virtualization Device emulation Para virtualization Direct device assignment Single root I/O virtualization (SR-IOV) Scalable I/O virtualization (SIOV) Software techniques Hardware assisted @twitter handle

Evolution of I/O Virtualization Para virtual I/O Device emulation Performance Scalability SR-IOV SIOV Direct device assign Device emulation Para virtualization Direct device assignment SR-IOV SIOV Scalability: Sharing of I/O devices across different VMs Performance: How fast guest OS can access device @twitter handle

Each ADI may use multiple interrupts SIOV Architecture BR 1 BR 2 BR 4 BR 3 BR K FAST PATH …..……… …………… ………… AN SIOV DEVICE HOST VMM S/W SLOW PATH VDCM GUEST 1 GUEST 2 GUEST n VIRTUAL DEVICE 1 VIRTUAL DEVICE n VIRTUAL DEVICE 2 ADI 1 ADI 2 ADI 3 ADI m Each ADI may use multiple interrupts VDCM: Virtual Device Composition Module ADI: Assignable Device Interface BR: Backend Resources @twitter handle

SIOV Devices INTERRUPT MESSAGE STORE (IMS) Is there a matching interrupt mechanism? GPU devices Reconfigurable FPGA devices RDMA capable devices High-performance devices High bandwidth network controller devices Data accelerators INTERRUPT MESSAGE STORE (IMS) NVM Express* storage controllers @twitter handle

The Interrupt Story… So Far MSI Pin based Wired Shared Reduced performance Memory write Stored as address/data pairs Never shared Max 32 messages Extension to MSI Stored in MSI-X table Individually configurable Max of 2048 vecs Is 2048 enough? Legacy interrupts MSI-X MSI: Message Signaled Interrupt @twitter handle

Need for IMS …..……… …………… ………… BR 1 BR 2 BR 4 BR 3 BR K FAST PATH …..……… …………… ………… AN SIOV DEVICE HOST VMM S/W SLOW PATH VDCM GUEST 1 GUEST 2 GUEST n VIRTUAL DEVICE 1 VIRTUAL DEVICE n VIRTUAL DEVICE 2 ADI 1 ADI 2 ADI 3 ADI m n = 1000 m = 2 k = 2 Total interrupt messages required = n * m * k = 1000 * 2 * 2 = 4000 (>> 2048) @twitter handle

Access through host driver Interrupt Message Store Unified or multiple Follows MSI-X format Device can support both IMS and MSI-X Uses remappable format Device specific Access through host driver No limit on size On-device or system memory @twitter handle

IMS advantages Dynamic Device specific Reduced OS enabling Scalable Access through host driver No limit on size On-device or system memory Unified or multiple Reduced OS enabling Scalable Flexible @twitter handle

Global unique Linux IRQ number Linux* Interrupt Subsystem 1. IRQ chip 2. IRQ domain 3. IRQ desc 4. IRQ data Global unique Linux IRQ number Controller local HWIRQs @twitter handle

Interrupt delivery path in a modern X86 system Hierarchical Domains APIC Vector INTEL IR DMAR-MSI Intel IR 0 Intel IR 1 DMAR-MSI IRQ domain Device C IO IR APIC IR PCI MSI IRQ CHIP IO APIC IR 0 Intel IR MSI Device A Device B Interrupt delivery path in a modern X86 system @twitter handle

Linux* IMS Design IRQ core: (arch/x86/kernel/apic/) Create IMS chip, IMS domain IRQ remapping: (drivers/iommu/) Support IMS domain X86 core: (arch/x86) Setup/teardown mechanisms Drivers core: (drivers/base) Allocate and free IRQs, IRQ chip callbacks dev_ims_alloc_irqs dev_ims_free_irqs @twitter handle

Interrupt delivery path in a modern X86 system Where does IMS fit in? DMAR-MSI INTEL IR APIC Interrupt delivery path in a modern X86 system IRQ CHIP IO IR APIC IO APIC IR 0 IR PCI MSI Intel IR MSI IRQ domain Device A Device B Device C Intel IR 0 Vector Intel IR 1 IR DEV-IMS Intel Dev IMS Device D @twitter handle

Driver Changes to Support IMS Device specific callbacks: mask, unmask, write_msg Driver must specify: Size of device IMS Location of device IMS @twitter handle

IMS Example Usage 1. Load the native device driver 2. Load the vfio-mdev module 3. Create mediated device 4. Pass mdev to *guest (e.g., *qemu) 5. Run some device operation in guest 6. Check /proc/interrupts: in host: IMS interrupts on guest: either IMS or MSI-X On host: On guest: @twitter handle

Current Status IMS infrastructure patches ready, testing done on simulator To be sent to Linux* Kernel Mailing List (LKML) for review Group based IMS allocation: Submitted RFC patch for dynamic MSI-x: https://lkml.org/lkml/2019/6/21/923 @twitter handle

Summary IMS is a scalable interrupt mechanism for SIOV devices Its size and location are device specific A new IMS IRQ chip and IRQ domain has been added support IMS interrupts IMS spec: https://software.intel.com/sites/default/files/managed/cc/0e/intel- scalable-io-virtualization-technical-specification.pdf Section 3.4.1 @twitter handle

Thank you! Questions?