Efficient Implementation of the bare-metal Hypervisor MetalSVM for the SCC



Similar documents
A Fast Inter-Kernel Communication and Synchronization Layer for MetalSVM

Red Hat Linux Internals

Linux Kernel Architecture

Chapter 14 Virtual Machines

Cloud Operating Systems for Servers

Linstantiation of applications. Docker accelerate

Scaling Networking Applications to Multiple Cores

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

SYSTEM ecos Embedded Configurable Operating System

Installing VMware Tools on Clearswift v4 Gateways

Bare-metal message passing API for many-core systems

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

I/O. Input/Output. Types of devices. Interface. Computer hardware

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

ProMoX: A Protocol Stack Monitoring Framework

VxWorks Guest OS Programmer's Guide for Hypervisor 1.1, 6.8. VxWorks GUEST OS PROGRAMMER'S GUIDE FOR HYPERVISOR

The QEMU/KVM Hypervisor

Next Generation Operating Systems

MontaVista Linux Carrier Grade Edition

Full and Para Virtualization

Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors

Embedded Systems. 6. Real-Time Operating Systems

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

Date: December 2009 Version: 1.0. How Does Xen Work?

EXPLORING LINUX KERNEL: THE EASY WAY!

Practical Applications of Virtualization. Mike Phillips IAP 2008 SIPB IAP Series

Datacenter Operating Systems

MODULE 3 VIRTUALIZED DATA CENTER COMPUTE

Virtualization for Cloud Computing

Beyond Virtualization: A Novel Software Architecture for Multi-Core SoCs. Jim Ready September 18, 2012

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Getting Started Using Project Photon on VMware Fusion/Workstation

SDN software switch Lagopus and NFV enabled software node

OSes. Arvind Seshadri Mark Luk Ning Qu Adrian Perrig SOSP2007. CyLab of CMU. SecVisor: A Tiny Hypervisor to Provide

Virtualization in Linux

TCP Servers: Offloading TCP Processing in Internet Servers. Design, Implementation, and Performance

Have both hardware and software. Want to hide the details from the programmer (user).

Linux Driver Devices. Why, When, Which, How?

OS Concepts and structure

Models For Modeling and Measuring the Performance of a Xen Virtual Server

KVM Virtualized I/O Performance

COS 318: Operating Systems. Virtual Machine Monitors

How To Install Project Photon On Vsphere 5.5 & 6.0 (Vmware Vspher) With Docker (Virtual) On Linux (Amd64) On A Ubuntu Vspheon Vspheres 5.4

Virtualization Technologies

How To Install Linux Titan

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment

Operating System Structure

ODP Application proof point: OpenFastPath. ODP mini-summit

Parallels VDI Solution

Guardian: Hypervisor as Security Foothold for Personal Computers

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Enabling Technologies for Distributed Computing

DE4 NetFPGA Packet Generator Design User Guide

WHITEPAPER INTRODUCTION TO CONTAINER SECURITY. Introduction to Container Security

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Wire-speed Packet Capture and Transmission

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Regional SEE-GRID-SCI Training for Site Administrators Institute of Physics Belgrade March 5-6, 2009

Using Chroot to Bring Linux Applications to Android

2972 Linux Options and Best Practices for Scaleup Virtualization

White Label ios Application Installation and Customization Guide

Operating Systems Virtualization mechanisms

A hypervisor approach with real-time support to the MIPS M5150 processor

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Simulation of wireless ad-hoc sensor networks with QualNet

Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF

Xen and the Art of. Virtualization. Ian Pratt

Android Operating System

BHyVe. BSD Hypervisor. Neel Natu Peter Grehan

- An Essential Building Block for Stable and Reliable Compute Clusters

CSE 265: System and Network Administration. CSE 265: System and Network Administration

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

快 速 porting μc/os-ii 及 driver 解 說

Chapter 3 Operating-System Structures

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Sockets vs. RDMA Interface over 10-Gigabit Networks: An In-depth Analysis of the Memory Traffic Bottleneck

Enabling Technologies for Distributed and Cloud Computing

Optimizing TCP Forwarding

The Xen of Virtualization

Chapter 10 Case Study 1: LINUX

High-performance vnic framework for hypervisor-based NFV with userspace vswitch Yoshihiro Nakajima, Hitoshi Masutani, Hirokazu Takahashi NTT Labs.

Android Virtualization from Sierraware. Simply Secure

CLOUDSPECS PERFORMANCE REPORT LUNACLOUD, AMAZON EC2, RACKSPACE CLOUD AUTHOR: KENNY LI NOVEMBER 2012

MOSIX: High performance Linux farm

KVM Architecture Overview

Operating System Organization. Purpose of an OS

Highly parallel, lock- less, user- space TCP/IP networking stack based on FreeBSD. EuroBSDCon 2013 Malta

Kernel Optimizations for KVM. Rik van Riel Senior Software Engineer, Red Hat June

Knut Omang Ifi/Oracle 19 Oct, 2015

Transcription:

Efficient Implementation of the bare-metal Hypervisor MetalSVM for the SCC Public Release of MetalSVM 0.1 Pablo Reble, Jacek Galowicz, Stefan Lankes and Thomas Bemmerl MARC Symposium, Toulouse CHAIR FOR OPERATING SYSTEMS

Introduction What is MetalSVM? Our Progress with MetalSVM Main Features Performance How to Get and Use MetalSVM Key-Features of MetalSVM 2 Chair for Operating Systems

What is MetalSVM? a minimal operating system for the SCC spin-off from eduos - a kernel developed at RWTH Aachen for educational purposes monolithic, MULTIBOOT-compliant 32 bit lightweight kernel unix-like programming interface sophisticated exploitation of SCC hardware merged with our ircce communication lib Key-Features of MetalSVM 3 Chair for Operating Systems

What is MetalSVM? First public release Version 0.1 Free Software Apache License 2.0 Is probably a great springboard for your bare-metal programming great mascot Mike the Ostrich Key-Features of MetalSVM 3 Chair for Operating Systems

Our Progress with MetalSVM run apps with small efficient kernel Integrate ircce for fast inter-core communication Establish SVM between multiple cores Paravirtualize Linux: One instance per core Run one guest on multiple cores [in progress] App App Kernel Kernel core 0 core n SCC Hardware Key-Features of MetalSVM 4 Chair for Operating Systems

Our Progress with MetalSVM run apps with small efficient kernel Integrate ircce for fast inter-core communication Establish SVM between multiple cores Paravirtualize Linux: One instance per core Run one guest on multiple cores [in progress] App Kernel Communication Layer App Kernel core 0 core n SCC Hardware Key-Features of MetalSVM 4 Chair for Operating Systems

Our Progress with MetalSVM run apps with small efficient kernel Integrate ircce for fast inter-core communication Establish SVM between multiple cores Paravirtualize Linux: One instance per core Run one guest on multiple cores [in progress] MetalSVM Kernel Application Communication Layer Kernel core 0 core n SCC Hardware Key-Features of MetalSVM 4 Chair for Operating Systems

Our Progress with MetalSVM run apps with small efficient kernel Integrate ircce for fast inter-core communication Establish SVM between multiple cores Paravirtualize Linux: One instance per core Run one guest on multiple cores [in progress] MetalSVM App App Linux Linux Hypervisor Hypervisor Kernel Communication Layer Kernel core 0 core n SCC Hardware Key-Features of MetalSVM 4 Chair for Operating Systems

Our Progress with MetalSVM run apps with small efficient kernel Integrate ircce for fast inter-core communication Establish SVM between multiple cores Paravirtualize Linux: One instance per core Run one guest on multiple cores [in progress] MetalSVM Application Paravirtualized Linux Hypervisor Kernel Communication Layer Kernel core 0 core n SCC Hardware Key-Features of MetalSVM 4 Chair for Operating Systems

Main Features Main Features running apps on MetalSVM is like running them bare-metal but not without the comfort of an OS! fast familiarization due to imitated aspects of Unix-like systems ircce included: fast communication core core functionality of RCCE + non-blocking message-passing event-driven Mailbox extension lwip included: TCP-IP communication core core SCC MCPC use BSD sockets in your user space app SVM system PGAS-like functions (explicit svm_alloc(), etc.) strong and lazy release consistency models Key-Features of MetalSVM 5 Chair for Operating Systems

Main Features Main Features (2) low-latency synchronization layer utilizing SCC-specific test and set- & atomic increment registers fast scheduling Round-Robin based with priority support configurable as timeslice based or tickless device drivers use your own character devices from user space basic file system populated from initial ramdisk easily customizable /dev interface for devices newlib C library for user space included SMP support (not on SCC) x86_64 version in progress Key-Features of MetalSVM 6 Chair for Operating Systems

Main Features Kernel Structure Application Programming Interface IPC scheduler timer I/O semaphore mutex mailbox running task ready tasks blocked tasks driver Hardware kernel structure of eduos/metalsvm Key-Features of MetalSVM 7 Chair for Operating Systems

Performance ircce Performance Throughput [MByte/s] 150 100 50 0 RCCE V1.0.3.13 ircce Memcpy pipelined ircce 1 2 4 8 16 32 64 256 1 k 4 k 16 k 64 k 256 k 1 M Packet Size [Byte] Comparing RCCE (V1.0.3.13) and ircce Source: ircce documentation Key-Features of MetalSVM 8 Chair for Operating Systems

Performance emac Device Driver Performance Throughput [MByte/s] 40 30 20 10 MCPC SCC 0 1 4 16 64 256 1 k 4 k 16 k Packet Size [Byte] 40 30 20 10 SCC MCPC Linux (2.6.38.3-jb) emac device MetalSVM emac device L1 cache 0 1 4 16 64 256 1 k 4 k 16 k Packet Size [Byte] Source: The Path to MetalSVM: Shared Virtual Memory for the SCC Key-Features of MetalSVM 9 Chair for Operating Systems

Performance Memory Mapped IP Driver Performance Throughput [MByte/s] 80 60 40 20 Full lwip version Linux (2.6.38.3-jb) MPB device MetalSVM MM device MetalSVM MM device L1 cache MetalSVM MM device via MPB 0 1 4 16 64 256 1 k 4 k 16 k Packet Size [Byte] 80 60 40 20 Sending packets from tile 0 to tile 1 Bypassing version 0 1 4 16 64 256 1 k 4 k 16 k Packet Size [Byte] Source: The Path to MetalSVM: Shared Virtual Memory for the SCC Key-Features of MetalSVM 10 Chair for Operating Systems

Performance SVM Performance Jacobi Over Relaxation algorithm Problem size 1024 512 SCC Platform running with 533 MHz core and 800 MHz memory/mesh Time [s] 400 300 200 100 0 1 2 4 8 16 32 48 Number of Cores ircce lazy release strong Source: Revisiting Shared Virtual Memory Systems for Non-Coherent Memory-Coupled Cores Key-Features of MetalSVM 11 Chair for Operating Systems

Performance Scheduling Overhead 30 10 3 Linux 2.6.38.3-jbrummer MetalSVM MetalSVM tickless 20 ticks 10 6.8 1.9 0 0 1,000 2,000 iteration Source: Efficient Implementation of the bare-metal Hypervisor MetalSVM for the SCC Key-Features of MetalSVM 12 Chair for Operating Systems

How to Get and Use MetalSVM Okay, I am interested! What now? How about getting a copy and playing with it? Key-Features of MetalSVM 13 Chair for Operating Systems

How to Get and Use MetalSVM Get it Just clone MetalSVM from our official git repository... $ git clone git://git.lfbs.rwth-aachen.de/metalsvm.git... do initial setup... $ cd metalsvm $ cp Makefile.scc Makefile $ (cd include/metalsvm; cp config.h.scc config.h)... build... $ make... and run on SCC: $ (cd tools; make SCC && sccboot -g obj) $ sccreset -r Key-Features of MetalSVM 14 Chair for Operating Systems

How to Get and Use MetalSVM Get it Just clone MetalSVM from our official git repository... $ git clone git://git.lfbs.rwth-aachen.de/metalsvm.git... do initial setup... $ cd metalsvm $ cp Makefile.scc Makefile $ (cd include/metalsvm; cp config.h.scc config.h)... build... $ make... and run on SCC: $ (cd tools; make SCC && sccboot -g obj) $ sccreset -r Key-Features of MetalSVM 14 Chair for Operating Systems

How to Get and Use MetalSVM Get it Just clone MetalSVM from our official git repository... $ git clone git://git.lfbs.rwth-aachen.de/metalsvm.git... do initial setup... $ cd metalsvm $ cp Makefile.scc Makefile $ (cd include/metalsvm; cp config.h.scc config.h)... build... $ make... and run on SCC: $ (cd tools; make SCC && sccboot -g obj) $ sccreset -r Key-Features of MetalSVM 14 Chair for Operating Systems

How to Get and Use MetalSVM Get it Just clone MetalSVM from our official git repository... $ git clone git://git.lfbs.rwth-aachen.de/metalsvm.git... do initial setup... $ cd metalsvm $ cp Makefile.scc Makefile $ (cd include/metalsvm; cp config.h.scc config.h)... build... $ make... and run on SCC: $ (cd tools; make SCC && sccboot -g obj) $ sccreset -r Key-Features of MetalSVM 14 Chair for Operating Systems

How to Get and Use MetalSVM Get it (2) Connect and send commands: $ telnet rck00 4711 Build documentation: $ doxygen see documentation/html/index.html Key-Features of MetalSVM 15 Chair for Operating Systems

How to Get and Use MetalSVM Configure it include/metalsvm/config.h configure if you want to include support for PCI, lwip, VGA, software-uart, Keyboard, Multiboot/SCC, change timeslice size, enable tickless scheduling, etc. Makefile Depending on wether you run MetalSVM in qemu/on SCC set compiler, etc. Key-Features of MetalSVM 16 Chair for Operating Systems

How to Get and Use MetalSVM Customize it The most important files and directories apps/ kernel space apps newlib/examples/ user space apps apps/tests.c the init daemon drivers/char/ character device drivers tools/ mostly SCC-specific build stuff Key-Features of MetalSVM 17 Chair for Operating Systems

How to Get and Use MetalSVM Conclusion With MetalSVM as a framework for your research on the SCC, you get: fast, bare-metal like execution of your code basic OS comfort in kernel- and user space fast communication: TCP-IP & ircce blocking & non-blocking, time- & event driven core core, SCC MCPC SVM support a kernel which is easily customizable to your needs Key-Features of MetalSVM 18 Chair for Operating Systems

Finally check out http://metalsvm.org contact@metalsvm.org Questions? Key-Features of MetalSVM 19 Chair for Operating Systems