Initial Evaluation of a User-Level Device Driver Framework

Similar documents
G Xen and Nooks. Robert Grimm New York University

User-level Management of Kernel Memory

IX: A Protected Dataplane Operating System for High Throughput and Low Latency

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich

Operating System Security

Towards Untrusted Device Drivers

Introduction to Operating Systems. Chapter Chapter

CS 341l Fall 2008 Test #4 NAME: Key

Introduction to Operating Systems. Chapter Chapter

CS 261 Fall Mike Lam, Professor. Virtual Memory

Common Computer-System and OS Structures

Introduction to Operating. Chapter Chapter

Introduction. CS3026 Operating Systems Lecture 01

ANALYSIS OF INTER- MODULE ERROR PROPAGATION PATHS IN MONOLITHIC OPERATING SYSTEM KERNELS

Initial Evaluation of a User-Level Device Driver Framework

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016

Profiling Grid Data Transfer Protocols and Servers. George Kola, Tevfik Kosar and Miron Livny University of Wisconsin-Madison USA

Exokernel: An Operating System Architecture for Application Level Resource Management

Announcements. Reading. Project #1 due in 1 week at 5:00 pm Scheduling Chapter 6 (6 th ed) or Chapter 5 (8 th ed) CMSC 412 S14 (lect 5)

Distributed File Systems Issues. NFS (Network File System) AFS: Namespace. The Andrew File System (AFS) Operating Systems 11/19/2012 CSC 256/456 1

Review: Hardware user/kernel boundary

Operating System Design Issues. I/O Management

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

Embedded Linux Architecture

The Performance of µ-kernel-based Systems

Improving Interrupt Response Time in a Verifiable Protected Microkernel

COS 318: Operating Systems. Virtual Memory and Address Translation

Authenticated Storage Using Small Trusted Hardware Hsin-Jung Yang, Victor Costan, Nickolai Zeldovich, and Srini Devadas

Chapter 5 Input/Output. I/O Devices

Maximum Performance. How to get it and how to avoid pitfalls. Christoph Lameter, PhD

CSE 120 Principles of Operating Systems

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1

RapiLog: Reducing System Complexity Through Verification

CS 111. Operating Systems Peter Reiher

Microkernel Construction

Address Translation. Tore Larsen Material developed by: Kai Li, Princeton University

Administrative Details. CS 140 Final Review Session. Pre-Midterm. Plan For Today. Disks + I/O. Pre-Midterm, cont.

Applications, services. Middleware. OS2 Processes, threads, Processes, threads, communication,... communication,... Platform

Part 1: Introduction to device drivers Part 2: Overview of research on device driver reliability Part 3: Device drivers research at ERTOS

Arrakis: The Operating System is the Control Plane

Xen Network I/O Performance Analysis and Opportunities for Improvement

6.033 Spring Lecture #6. Monolithic kernels vs. Microkernels Virtual Machines spring 2018 Katrina LaCurts

SPIN Operating System

Buffered Co-scheduling: A New Methodology for Multitasking Parallel Jobs on Distributed Systems

Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington

Developing deterministic networking technology for railway applications using TTEthernet software-based end systems

Virtualization, Xen and Denali

Last 2 Classes: Introduction to Operating Systems & C++ tutorial. Today: OS and Computer Architecture

IsoStack Highly Efficient Network Processing on Dedicated Cores

Operating System. Operating Systems Structure Chapter 2. Services Provided by the OS. Evolution of an Operating System

An Extensible Message-Oriented Offload Model for High-Performance Applications

Lecture 23: Storage Systems. Topics: disk access, bus design, evaluation metrics, RAID (Sections )

Support for Smart NICs. Ian Pratt

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

CONSTRUCTION OF A HIGHLY DEPENDABLE OPERATING SYSTEM

CSE398: Network Systems Design

Lecture 2: September 9

Virtual Machines Disco and Xen (Lecture 10, cs262a) Ion Stoica & Ali Ghodsi UC Berkeley February 26, 2018

Container Adoption for NFV Challenges & Opportunities. Sriram Natarajan, T-Labs Silicon Valley Innovation Center

Authors : Ruslan Nikolaev Godmar Back Presented in SOSP 13 on Nov 3-6, 2013

Flash: an efficient and portable web server

RISCV with Sanctum Enclaves. Victor Costan, Ilia Lebedev, Srini Devadas

IO virtualization. Michael Kagan Mellanox Technologies

I/O Devices. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau)

Advanced Systems Security: Virtual Machine Systems

CS 4284 Systems Capstone

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System

CS510 Operating System Foundations. Jonathan Walpole

I/O Management Software. Chapter 5

Towards a Resilient Operating System for Wireless Sensor Networks

Computer Science. ! Other approaches:! Special systems designed for extensibility

4. Hardware Platform: Real-Time Requirements

Motivation. What s the Problem? What Will we be Talking About? What s the Solution? What s the Problem?

The Microkernel Overhead

virtual memory Page 1 CSE 361S Disk Disk

Memory Technology. Chapter 5. Principle of Locality. Chapter 5 Large and Fast: Exploiting Memory Hierarchy 1

Reducing CPU and network overhead for small I/O requests in network storage protocols over raw Ethernet

Nooks. Robert Grimm New York University

CS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University

I/O Management Software. Chapter 5

A Userspace Packet Switch for Virtual Machines

Advanced Systems Security: Virtual Machine Systems

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1

Eleos: Exit-Less OS Services for SGX Enclaves

Chapter 6. Storage and Other I/O Topics

Network Interface Architecture and Prototyping for Chip and Cluster Multiprocessors

Hardware Works, Software Doesn t: Enforcing Modularity with Mondriaan Memory Protection

Architectural Support for Operating Systems

QUESTION BANK UNIT I

W4118: OS Overview. Junfeng Yang

Demystifying Network Cards

Virtual Memory Oct. 29, 2002

Tessellation: Space-Time Partitioning in a Manycore Client OS

I/O Device Controllers. I/O Systems. I/O Ports & Memory-Mapped I/O. Direct Memory Access (DMA) Operating Systems 10/20/2010. CSC 256/456 Fall

Advanced Computer Networks. End Host Optimization

Virtual Machine Monitors (VMMs) are a hot topic in

OS Extensibility: Spin, Exo-kernel and L4

Verteilte Systeme (Distributed Systems)

Transcription:

Initial Evaluation of a User-Level Device Driver Framework Stefan Götz Karlsruhe University Germany sgoetz@ira.uka.de Kevin Elphinstone National ICT Australia University of New South Wales kevine@cse.unsw.edu.au

User-Level Device Drivers 2

Why do systems crash? Privileged device drivers in monolithic systems No protection system crashes [Chou, Engler et al., 01] Many flaws in driver code Large driver code-base Run un-trusted drivers? Applications Drivers Hardware Applications Data Processing OS Services: Memory Management Task Management File Management User-Level Device Drivers 3

Goals Improve OS reliability Achieve protection Isolate drivers De-privilege drivers Application properties user-level drivers Maintain performance Applications Drivers Drivers Applications Data Processing OS Services: Memory Management Task Management File Management Hardware User-Level Device Drivers 4

Related Work Driver signing Isolated but privileged drivers (Nooks) Safe kernel extensions User-level drivers Incomplete bottom-up analysis so far Virtual machines Potential for formal system verification User-Level Device Drivers 5

Basic Driver Model Data transfer & buffer management Event notification Devices Drivers Application Clients User-Level Device Drivers 6

Data Transfer Copying expensive pass-by-reference Transfer via shared memory Amortization of setup costs Driver Client Kernel User-Level Device Drivers 7

Event Notification Kernel interaction too expensive User-level messaging via shared memory Batching Driver Client Kernel User-Level Device Drivers 8

Buffer Address Translation Physical buffer addresses for DMA Translation data unavailable to driver Secure state sharing Amortization of costs Physical RAM Memory Manager Device Driver Client User-Level Device Drivers 9

Evaluation: Test Setup Memory Managers Device Managers NIC Driver IP Stack UDP Echo UDP Echo L4 Linux GBit/s NIC Hardware Xeon CPU Hardware GBit/s Switch Load Generator Load Generator Load Generator Load Generator User-Level Device Drivers 10

Evaluation: Benchmark Results Throughput CPU Utilization 900 700 Ideal Monolithic User-Level 100 80 Monolithic User-Level Achieved Throughput (MBit/s) 500 300 100 CPU Utilization (%) 60 40 20-100 0 200 400 600 800 0 0 200 400 600 800 Applied Load (MBit/s) Applied Load (MBit/s) Similar throughput at lower CPU utilization than Linux User-Level Device Drivers 11

Summary Poor OS reliability due to device drivers Isolated and de-privileged drivers Fault isolation Competitive performance Future work Application-level benchmarks Impact of DMA-safe hardware (IO-MMUs) Punch line / Take-home message? User-Level Device Drivers 12

Thank You [Chou, Engler et al., 01]: Chou, A., Yang, J., Chelf, B., Hallem, S., Engler, D. An empirical study of operating systems errors. In Proceedings of the 18th Symposium on Operating Systems Principles, 2001 User-Level Device Drivers 13

Session Abstraction Interaction and authentication context Connects interacting components Chainable Associates with shared memory Relatively long-lived Allows for batching granularity vs. performance trade-off User-Level Device Drivers 14

Buffer Memory Pinning Time-based pinning Pin time guaranteed by memory manager Part of translation cache entries Correct estimates in drivers difficult State sharing Pinning requests by drivers Advisory bit in translation cache entries Resource limits enforceable Translation caches writable for drivers User-Level Device Drivers 15

Interrupt Handling Interrupt delivery to user-level via kernel Synchronous IPC as light-weight abstraction Overhead from kernel interaction Small compared to off-chip device handling Interrupt hold-off techniques Batching in hardware Latency vs. throughput & CPU utilization User-Level Device Drivers 16

Execution Time Profile Translation 6% Buffer 17% Notification 5% IPC 7% Busy 32% Kernel 11% Idle 68% Driver 8% IP 46% User-Level Device Drivers 17