Embedded Software SKKU 15 1 김혁중, 한규화, 황연성 Tizen System Analysis.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Performance Testing - Kanwalpreet Singh.
© 2003, Cisco Systems, Inc. All rights reserved..
Virtualization Technology
1. Overview  Introduction  Motivations  Multikernel Model  Implementation – The Barrelfish  Performance Testing  Conclusion 2.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
@ NCSU Zhi NCSU Xuxian Microsoft Research Weidong Microsoft NCSU Peng NCSU ACM CCS’09.
SECTION 1: INTRODUCTION TO SIMICS Scott Beamer CS152 - Spring 2009.
Andreas Sandberg ARM Research
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Android Security GROUP MAY 1208 Alex Frisvold Alex Meyer Nazmus Sakib Eric Van Buren.
Tanenbaum 8.3 See references
Android Introduction Platform Overview.
Computer Organization
Introduction to HP LoadRunner Getting Familiar with LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Sumit Kumar Archana Kumar Group # 4 CSE 591 : Virtualization and Cloud Computing.
Introduction of Tizen : Tizen Overview Chan Seok Kang 2013/03/21.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Scalable Cluster Management: Frameworks, Tools, and Systems David A. Evensky Ann C. Gentile Pete Wyckoff Robert C. Armstrong Robert L. Clay Ron Brightwell.
Design Tradeoffs For Software-Managed TLBs Authers; Nagle, Uhlig, Stanly Sechrest, Mudge & Brown.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
Tizen v2.3 Emulation on PC.
VirtualBox What you need to know to build a Virtual Machine.
Hadi Salimi Distributed Systems Lab, School of Computer Engineering, Iran University of Science and Technology, Fall 2010 Performance.
29th ACSAC (December, 2013) SPIDER: Stealthy Binary Program Instrumentation and Debugging via Hardware Virtualization Zhui Deng, Xiangyu Zhang, and Dongyan.
INTRODUCTION SOFTWARE HARDWARE DIFFERENCE BETWEEN THE S/W AND H/W.
High Performance Computing on Virtualized Environments Ganesh Thiagarajan Fall 2014 Instructor: Yuzhe(Richard) Tang Syracuse University.
Android architecture & setting up. Android operating system comprises of different software components arranges in stack. Different components of android.
Embedded Software SKKU 14 1 Sungkyunkwan University Tizen v2.3 Application Profiling & Debugging.
Parallel Programming on the SGI Origin2000 With thanks to Igor Zacharov / Benoit Marchand, SGI Taub Computer Center Technion Moshe Goldberg,
* Third party brands and names are the property of their respective owners. Performance Tuning Linux* Applications LinuxWorld Conference & Expo Gary Carleton.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Midterm Meeting Pete Bohman, Adam Kunk, Erik Shaw.
The Game Machine. Introduction Background – The project is to create a new type of 3D game machine architecture on embedded system device. – We will discuss.
Full and Para Virtualization
Introduction Why are virtual machines interesting?
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Course 03 Basic Concepts assist. eng. Jánó Rajmond, PhD
KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association SYSTEM ARCHITECTURE GROUP DEPARTMENT OF COMPUTER.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
Virtualization Neependra Khare
Introduction to Operating Systems Concepts
Computer System Structures
Computer System Structures
Android Mobile Application Development
Virtualization.
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
??? ple r B Amulya Sai EDM14b005 What is simple scalar?? Simple scalar is an open source computer architecture simulator developed by Todd.
Current Generation Hypervisor Type 1 Type 2.
Chapter 2: Operating-System Structures
The Multikernel: A New OS Architecture for Scalable Multicore Systems
Structural Simulation Toolkit / Gem5 Integration
Virtualization overview
Performance Tuning Team Chia-heng Tu June 30, 2009
Building Android OS Topics: Building Android and Kernel
What is an Operating System?
Group 8 Virtualization of the Cloud
OS Virtualization.
Section 1: Introduction to Simics
Virtualization Techniques
Chapter 2: The Linux System Part 1
Application Development A Tutorial Driven Course
Assembly Language for Intel-Based Computers
A Virtual Machine Monitor for Utilizing Non-dedicated Clusters
CMPE419 Mobile Application Development
Presentation transcript:

Embedded Software SKKU 15 1 김혁중, 한규화, 황연성 Tizen System Analysis

Embedded Software SKKU 15 2 To evaluate the hardware behavior Tizen on QEMU + GEM5 – Idea from Gemdroid – Expected to simulator Tizen behavior using GEM5 with the trace extracted from Tizen emulator (QEMU) Primary Goal: Gem+Tizen

Embedded Software SKKU 15 3 "GemDroid: A Framework to Evaluate Mobile Platforms“ The 2014 ACM International Conference on Measurement and Modeling of Computer Systems. ACM(SIGMETRICS), The Pennsylvania State University – Chidambaram Nachiappan Nachiappan, Praveen Yedlapalli, Mahmut T. Kandemir, Anand Sivasubramaniam, Chita R. Das Intel Corp. – Niranjan Soundararajan GemDroid

Embedded Software SKKU 15 4 Holistic evaluation tools for mobile system covering cores, IPs, memory, and system SW. GemDroid (cont) – provides cycle-accurate simulation models (800x slowdown) – captures and replays instruction- level trace (ARM instructions + IP calls)

Embedded Software SKKU 15 5 QEMU(Quick EMUlator) – Open source – Hypervisor (Virtual machine monitor) – Hardware virtualization – GNU GPL version2 license – Supports IA_32, X86-64… QEMU

Embedded Software SKKU 15 6 Modular discrete event driven computer system simulator platform Merger of the best aspects of the M5 and GEMS – M5 provide a highly configurable simulation framework, multiple ISAs, and diverse CPU models – GEMS complement M5’s features with a detailed and flexible memory system – multiple cache coherence protocols and interconnect models Provide a wide variety of capabilities and components – CPU model – System mode – Memory system GEM5

Embedded Software SKKU 15 7 GEM5 is ‘architecture simulator’ – Impossible to simulate using instruction trace from QEMU (runtime simulation is needed) – In case of the paper (GemDroid), it may only simulate memory event using memory event trace and GEM5. Tizen should be run on GEM5 for using GEM5 (rather than trace) – Trace-driven simulation is not available – GEM5 uses pre-built OS image for full-system simulation Android image and ubuntu image are provided by the GEM5 community, but Tizen has no specific image. Problem of using GEM5

Embedded Software SKKU 15 8 Architecture Simulator (like GEM5) – Run simulation based on QEMU with PTLsim and DRAMsim. – Because Tizen (3.0) can run on generic QEMU, ‘expected’ to simulate Tizen behavior using MARSS. Plan B: MARSSx86 simulator

Embedded Software SKKU 15 9 Need to use Generic QEMU (because MARSS modified QEMU source code) To run Tizen on Generic QEMU, we need to choose Tizen 3.0 common x11 image – Port Tizen 3.0 common image into QEMU (in MARSS) MARSSx86 uses old version of QEMU – QEMU version on MARSSx86 is (currently QEMU is 2.2.0) On generic QEMU, display don’t show up with Tizen image. – Modify the display option into fbdev (Framebuffer) rather than DRM – In systemd, set fbdev (dev/fb0) as default mount. – Success to boot up Tizen 3.0 image on QEMU. – Success to run Crosswalk on Tizen 3.0 image. Tizen porting on MARSSx86Sim Ref:

Embedded Software SKKU Emulation was available, but, simulation was not available – When start simulation, the system gets crash. Reason: PTLsim (Core simulator) can’t translate corresponding instruction. – Solution Linux kernel downgrade – Current linux kernel version on Tizen is 3.14 – Success to port Tizen on linux vanilla kernel 3.10 (with some boot up fail like SMACK) – Still get translation error Fix instruction translation problem – After fixing: other Instruction also has same translation error. – It is impossible to translate all x86 instruction into up-to-date Problem on running MARSSx86 simulation

Embedded Software SKKU MARSSx86 simulation Failed

Embedded Software SKKU Overview – Qemu memory trace Fix Tizen QEMU (Tizen_2.2) to get memory trace profile Simulate memory behavior using Trafficgen in GEM5 load/store, memory address, tick information – Qemu device behavior trace Tizen emulator uses virtio device to improve the performance It may available to get event trace on QEMU virtio source Insert event trace code on GPU, codec, touch screen virtio driver Plan C: QEMU Tracing on Tizen

Embedded Software SKKU Clone Tizen emulator on emulator repository – git clone ssh://review.tizen.org:gerrit/sdk/emulator/qemu.git Install pre-requisite tools for configure – run./emulator_configure.sh on [QEMU]/tizen – if get some error about dependency, install required tool for corresponding error Build 진행 – run./build.sh – built emulator-x86 image is in [QEMU]/tizen/emulator/bin Run emulator using built image – copy emulator-x86 into [Tizen-sdk]/tools/emulator/bin – Run emulator (IDE or emulator manager) Tizen_2.2 emulator build & Execution 참고

Embedded Software SKKU Memory tracing – tlb_fill ([QEMU]/target-i386/mem_helper.c) Check whether accessed address is in TLB Memory address, read/write, time(tick) = total 13 byte Memory trace parsing – Make memory trace as binary data (because of huge size) – 21-byte entry: operation, address, size, tick – Convert binary trace into readable trace using parser Implementation

Embedded Software SKKU 15 Implementation (cont) Device tracing – [QEMU]/tizen/src/hw/ – maru_brill_codec.c – maru_virtio_hwkey.c – maru_virtio_touchscree.c – virtio-gl.c

Embedded Software SKKU Qemu tracing and parsing – QQIBhjOTEENNOiGwAg&index=2 QQIBhjOTEENNOiGwAg&index=2 Demo

Embedded Software SKKU Memory Trace – Extract memory trace on Tizen emulator – Native application (5min) watch cube drawing board scheduler – Web application (5min) analog watch image rotation paint app event manager Experiment

Embedded Software SKKU NativeWeb # of Instruction (million) Total cycle (billion) Mem write (GB) Mem read (GB) Brill_codec15742 touchscreen hwkey7242 virtio-gl Results Each Native app & Web app workload – Extract memory event, instruction count, memory RW request, device event brill_codec is codec device, touchscreen is touch event, hwkey is hardware key event, virtio-gl is OpenGL event

Embedded Software SKKU Not a same workload between Native and Web App – Try to make similar workload with similar application  but it is not same – Need to analyze micro component like view, interaction Tracing – Need to analyze core, instruction pipe-line or cache behavior Device tracing – Only trace event call count – Need to break down into detail behavior like memory allocation, task scheduling, etc. Limitation