GILK: A Dynamic Instrumentation Tool for the Linux Kernel David J. Pearce, Paul H.J. Kelly, Tony Field and Uli Harder

Slides:



Advertisements
Similar presentations
Introduction to .NET Framework
Advertisements

Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
IGOR: A System for Program Debugging via Reversible Execution Stuart I. Feldman Channing B. Brown slides made by Qing Zhang.
Tools for applications improvement George Bosilca.
Caching the MDSPlus Data via Hibernate By Ajith M Jose Comp6703 Project Client: Raju Karia Supervisor: Dr. Henry Gardner (Development of “WebScope”)
A Comparative Study of Extensible Routers Yitzchak Gottlieb and Larry Peterson.
DEPARTMENT OF COMPUTER ENGINEERING
Nooks: an architecture for safe device drivers Mike Swift, The Wild and Crazy Guy, Hank Levy and Susan Eggers.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
Software Metrics Testing MINIX 3. Introduction What is Metrics Analysis? Metrics Analysis is a field of Static Analysis. Show us structural attributes.
Comparative Operating Systems Fall 2001 An Examination of Embedded Linux as a Real Time Operating System Mark Mahoney.
Java Server Pages (JSP) Presented by: Ananth Prasad & Alex Ivanov May 10, 2001.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Java Analysis Studio Tony Johnson Stanford Linear Accelerator Center CHEP 97 - April 1997.
Aug 20 th, 2002 Sigcomm Education Workshop 1 Teaching tools for a network infrastructure teaching lab The Virtual Router and NetFPGA Sigcomm Education.
PAPI Tool Evaluation Bryan Golden 1/4/2004 HCS Research Laboratory University of Florida.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring of JVM.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
CSC 310 – Imperative Programming Languages, Spring, 2009 Virtual Machines and Threaded Intermediate Code (instead of PR Chapter 5 on Target Machine Architecture)
Introduction Characteristics of USB System Model What needs to be done Platform Issues Conceptual Issues Timeline USB Monitoring 2 nd Update – 7 th February.
Beagle Board Fast Boot Hui Chen Keji Ren Dec 10 th, 2009 EE382N-4 Project.
Exploring Suitability of Linux for Embedded Vision Applications Ankit Mathur Mayank Agarwal Mini Project.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
CSE 219 Computer Science III Program Design Principles.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
High-speed TCP  FAST TCP: motivation, architecture, algorithms, performance (by Cheng Jin, David X. Wei and Steven H. Low)  Modifying TCP's Congestion.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Operated by Los Alamos National Security, LLC for NNSA U N C L A S S I F I E D Slide 1 LANL-stor and the Challenges of Evolutionary Development Managing.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
4061 Session 25 (4/17). Today Briefly: Select and Poll Layered Protocols and the Internets Intro to Network Programming.
CS 4720 Dynamic Web Applications CS 4720 – Web & Mobile Systems.
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Eclipse 24-Apr-17.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
Copyright © by Shayne R Flint Simplified Web Application Development Shayne R Flint Department of Computer Science Australian National University.
An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi.
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
Design of a Modification to an Ethernet Driver Introduction The purpose of this project is to modify the Ethernet device driver so that it will not block.
An Introduction to Device Drivers Ted Baker  Andy Wang COP 5641 / CIS 4930.
CISC Machine Learning for Solving Systems Problems Presented by: Suman Chander B Dept of Computer & Information Sciences University of Delaware Automatic.
Overview of dtrace Adam Leko UPC Group HCS Research Laboratory University of Florida Color encoding key: Blue: Information Red: Negative note Green: Positive.
1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.
Operating-System Structures
31 Oktober 2000 SEESCOASEESCOA STWW - Programma Work Package 5 – Debugging Task Generic Debug Interface K. De Bosschere e.a.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
By, Rutika R. Channawar. Content Introduction Open Handset Alliance Minimum Hardware Requirements Versions Feature Architecture Advantages Disadvantages.
Improving the Reliability of Commodity Operating Systems Michael M. Swift, Brian N. Bershad, Henry M. Levy Presented by Ya-Yun Lo EECS 582 – W161.
EPICS and LabVIEW Tony Vento, National Instruments
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration.
LAB302 Image Enabling Host Applications. Introduction What is the purpose of this class? What will we learn? What will you walk away with?
Computer System Structures
Android Mobile Application Development
Let's talk about Linux and Virtualization in 'vLAMP'
Unconventional applications of Intel® Xeon Phi™ Processor (KNL)
CompSci 725 Presentation by Siu Cho Jun, William.
Module 0: Introduction Chapter 2: Getting Started
Module 1: Getting Started
Pluggable Architecture for Java HPC Messaging
Optimize Your Java Code By Tools
Shielding applications from an untrusted cloud with Haven
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
IS 135 Business Programming
Presentation transcript:

GILK: A Dynamic Instrumentation Tool for the Linux Kernel David J. Pearce, Paul H.J. Kelly, Tony Field and Uli Harder

Introduction  Do programmers really know what is going on? »Need deeper understanding of program behaviour »Debug/model/validate performance issues »Program instrumentation can provide this  GILK is about doing this for the Linux Kernel »Adds instrumentation on the fly »No need to restart »No need to recompile »No need to interrupt the web server!

Introduction  Do programmers really know what is going on? »Need deeper understanding of program behaviour »Debug/model/validate performance issues »Program instrumentation can provide this  GILK is about doing this for the Linux Kernel »Adds instrumentation on the fly »No need to restart »No need to recompile »No need to interrupt the web server!

GILK – An Introduction

Motivating Example  Research into Self Imperial »Using TCPDUMP to obtain network timing information »Produced fair amount of data »But occasional zero or negative inter-arrival time was spotted »Are results so far wasted? »Is TCPDUMP useable or not?  GILK deployed for comparison with TCPDUMP »GILK provides high resolution packet arrival times »Previous results valid – statistical properties unchanged »TCPDUMP does generate erroneous results  What We Did »Next slide

Motivating Example  Research into Self Imperial »Using TCPDUMP to obtain network timing information »Produced fair amount of data »But occasional zero or negative inter-arrival time was spotted »Are results so far wasted? »Is TCPDUMP useable or not?  GILK deployed for comparison with TCPDUMP »GILK provides high resolution packet arrival times »Previous results valid – statistical properties unchanged »TCPDUMP does generate erroneous results  What We Did »Next slide

Motivating Example  Research into Self Imperial »Using TCPDUMP to obtain network timing information »Produced fair amount of data »But occasional zero or negative inter-arrival time was spotted »Are results so far wasted? »Is TCPDUMP useable or not?  GILK deployed for comparison with TCPDUMP »GILK provides high resolution packet arrival times »Previous results valid – statistical properties unchanged »TCPDUMP does generate erroneous results  What We Did »Next slide

speedo_rx sock_recvmsg What We Did BSD Socket Layer Ethernet Driver { { Linux Network Stack

speedo_rx sock_recvmsg What We Did BSD Socket Layer Ethernet Driver { { Linux Network Stack

Where was the Success?  We’re not Kernel Programmers »Don’t know beforehand what was needed »Time wasted trying different instrumentation  GILK is fast »Turn around time only a few minutes »Allows us to try many different instrumentations »Fits exploratory nature of debugging

Where was the Success?  We’re not Kernel Programmers »Don’t know beforehand what was needed »Time wasted trying different instrumentation  GILK is fast »Turn around time only a few minutes »Allows us to try many different instrumentations »Fits exploratory nature of debugging

Where was the Success?  We’re not Kernel Programmers »Don’t know beforehand what was needed »Time wasted trying different instrumentation  GILK is fast »Turn around time only a few minutes »Allows us to try many different instrumentations »Fits exploratory nature of debugging

How it Works  GILK uses code splicing technology »Allows instrumentation of active kernel »Instrumentation performed at machine code level »Works on unmodified kernel image »No patching, restarting, recompiling etc  Instruments written in ‘C’ »Implemented as Kernel Modules »Access to full language features »Access to kernel functionality  System Requirements »Only Intel x86 Architecture supported »Kernel versions 2.0 – 2.2 supported -Extension to 2.4 is trivial

How it Works  GILK uses code splicing technology »Allows instrumentation of active kernel »Instrumentation performed at machine code level »Works on unmodified kernel image »No patching, restarting, recompiling etc  Instruments written in ‘C’ »Implemented as Kernel Modules »Access to full language features »Access to kernel functionality  System Requirements »Only Intel x86 Architecture supported »Kernel versions 2.0 – 2.2 supported -Extension to 2.4 is trivial

How it Works  GILK uses code splicing technology »Allows instrumentation of active kernel »Instrumentation performed at machine code level »Works on unmodified kernel image »No patching, restarting, recompiling etc  Instruments written in ‘C’ »Implemented as Kernel Modules »Access to full language features »Access to kernel functionality  System Requirements »Only Intel x86 Architecture supported »Kernel versions 2.0 – 2.2 supported -Extension to 2.4 is trivial

Before After instrumentation splice Relocated sequence Kernel Function { Kernel Function { Code Patch { Instruction Boundaries unused

Conclusion  GILK quickly instruments Linux Kernel »Runtime code splicing useful for instrumentation »Much left unsaid, however  Future work … »Simplifying instrumentation process -GUI, Instrumentation Strategies, Visualization »Programmatic instrumentation is possible -Paradyn (WISC) attempts this »Non-instrumentation based options -Modifying Program Behaviour »Non-Intel platforms? -KernInst/Paradyn (WISC) on UltraSparc/Solaris »User-Space programs? -User-Space Threading is an issue … »Our Research group is now doing this for Java …

Conclusion  GILK quickly instruments Linux Kernel »Runtime code splicing useful for instrumentation »Much left unsaid, however  Future work … »Simplifying instrumentation process -GUI, Instrumentation Strategies, Visualization »Programmatic instrumentation is possible -Paradyn (WISC) attempts this »Non-instrumentation based options -Modifying Program Behaviour »Non-Intel platforms? -KernInst/Paradyn (WISC) on UltraSparc/Solaris »User-Space programs? -User-Space Threading is an issue … »Our Research group is now doing this for Java …

Conclusion  GILK quickly instruments Linux Kernel »Runtime code splicing useful for instrumentation »Much left unsaid, however  Future work … »Simplifying instrumentation process -GUI, Instrumentation Strategies, Visualization »Programmatic instrumentation is possible -Paradyn (WISC) attempts this »Non-instrumentation based options -Modifying Program Behaviour »Non-Intel platforms? -KernInst/Paradyn (WISC) on UltraSparc/Solaris »User-Space programs? -User-Space Threading is an issue … »Our Research group is now doing this for Java …