Accelerating Delivery of Quality Systems with Eclipse-based Tools. Sebastien Marineau-Mes QNX Software Systems

Similar documents
Getting the Most from Eclipse

QNX MOMENTICS ACCELERATE YOUR DEVELOPMENT WITH QNX MOMENTICS KNOCK WEEKS, EVEN MONTHS, OFF YOUR DEVELOPMENT SCHEDULE WITH THE

Case Study: Using System Tracing to Improve Packet Forwarding Performance

What s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead

QNX Software Development Platform 6.6. Quickstart Guide

System Wide Tracing User Need

Migrating Linux Device Drivers to a Microkernel POSIX RTOS: A Case Study. David Donohoe Senior Software Developer QNX Software Systems

IDE for medical device software development. Hyun-Do Lee, Field Application Engineer

An Introduction to e 2 studio

The Road to CCSv4. Status Update

Module Road Map. 7. Version Control with Subversion Introduction Terminology

JBuilder 2007 Product Tour November 2006

Welcome to the Software Overview section of the MIPS Software Training course. In this section I will discuss software and software tools you can use

Semantic Web T LS Update

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Oracle Developer Studio 12.6

Embedded automotive applications are just a few clicks away. Philippe NOEL - STMicroelectronics

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

ADT: Eclipse development tools for ATL

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools

Introduction to Eclipse

Regular Forum of Lreis. Speechmaker: Gao Ang

Eclipse Tool Chain for Smart Development of High-Tech / Low Cost Embedded Systems

Carrier Grade Linux and VxWorks

Esto. An Eclipse-Based Embedded S/W Development Tool. Heung-Nam Kim Director of Embedded S/W Technology Center

Nios II Studio Help System

Resource 2 Embedded computer and development environment

Streaming mode snapshot mode Faster Troubleshooting Higher Quality Better Performance Control System Tuning Other Benefits

Eclipse-PTP: An Integrated Environment for the Development of Parallel Applications

Index. Symbols. /**, symbol, 73 >> symbol, 21

NSIGHT ECLIPSE EDITION

Debugging on Intel Platforms

@Cisco. Welcome! By Rennie Allen, Cisco FAE. Welcome to the Machine By Rennie Allen, Cisco FAE. Q Volume 1 Issue 1

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Release Notes. S32 Design Studio for ARM v1.1

Quick tour of the Test and Performance Tools Platform (TPTP) Valentina Popescu IBM Tivoli TPTP AG Lead

RTOS, Linux & Virtualization Wind River Systems, Inc.

IBM C Rational Functional Tester for Java. Download Full Version :

Code Composer Studio v4. Introduction

Eclipse in Embedded. Neha Garg : Prerna Rustagi :

Exam Questions. Give an example network topology where GPSR cannot find a way from a source to a sink. Explain your answer.

25. DECUS Symposium THE Application Development Environment for OpenVMS

ID 321L: KPIT GNU compiler plug-ins for HEW / KPIT Eclipse IDE

NSIGHT ECLIPSE EDITION

Enterprise Architect. User Guide Series. Portals

REAL TIME OPERATING SYSTEM PROGRAMMING-I: VxWorks

BRDS ( , WS 2017) Ulrich Schmid

CUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin

Visual Profiler. User Guide

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers

Real Time and Embedded Systems. by Dr. Lesley Shannon Course Website:

Copyright 2014 Xilinx

Eclipse Introduction. Zeng Yu

Debugging in AnyLogic. Nathaniel Osgood CMPT

DEEP DIVE WHITE PAPER

More performance options

Advanced Debugging with the System Profiler. Rennie Allen Cisco Field Application Engineer

Enterprise Architect. User Guide Series. Portals. Author: Sparx Systems. Date: 19/03/2018. Version: 1.0 CREATED WITH

The Eclipse Parallel Tools Platform Project

Cisco Unified Application Designer 2.4

P17 System Testing Monday, September 24, 2007

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI

What's New in CDT 7.0? dominique dot toupin at ericsson dot com

10 Steps to Virtualization

Figure 1 - EDGE Developer Suite Block Diagram

ECE QNX Real-time Lab

Track Two Building an Internet Radio with the TI Sitara AM3517 using LinuxLink

Enterprise Architect. User Guide Series. Portals

Developing Scientific Applications with the IBM Parallel Environment Developer Edition

NetBeans Tutorial. For Introduction to Java Programming By Y. Daniel Liang. This tutorial applies to NetBeans 6, 7, or a higher version.

Parallel Debugging. ª Objective. ª Contents. ª Learn the basics of debugging parallel programs

WIND RIVER DIAB COMPILER

Outline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview Use Cases Architecture Features Copyright Jaluna SA. All rights reserved

NSIGHT ECLIPSE EDITION

J2EE Application Development with WebSphere Studio

J2EE Application Development : Conversion and Beyond Osmond Ng

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018

Performance Cockpit: An Extensible GUI Platform for Performance Tools

IAR Embedded Workbench for 8051 Version 7.30A

Using Intel VTune Amplifier XE and Inspector XE in.net environment

OS PORTING AND ABSTRACTION LAB USER MANUAL

DS-5 ARM. Using Eclipse. Version Copyright ARM. All rights reserved. ARM DUI 0480L (ID100912)

In the Driver s Seat

Command Line Interface (CLI)

Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

Software Quality is Directly Proportional to Simulation Speed

Nios II Software Developer s Handbook

IBM Europe Announcement ZP , dated November 6, 2007

MDK-ARM Version 5. ULINK Debug Adapters. Microcontroller Development Kit.

Service Execution Platform WebOTX To Support Cloud Computing

Eclipse Device Debuging: Debugger Services Framework (DSF) Martin Oberhuber and Pawel Piech, Wind River ECSI Workshop on System Debug, 10-Mar-2008

Design Better. Reduce Risks. Ease Upgrades. Protect Your Software Investment

Cisco Unified Computing System Delivering on Cisco's Unified Computing Vision

Packaging for Websphere Development Studio was changed with V6R1.

SBC-S32V234 QUICK START GUIDE (QSG)

Getting Started What?? Plan of Action Features and Function Short demo

When Modeling meets Productivity. Sven Efftinge - itemis

atoll ic TrueSTUDIOPro Professional C/C++ IDE for ARM -based devices The essential toolkit for ARM development

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Intel System Studio 2014 Overview

Transcription:

Accelerating Delivery of Quality Systems with Eclipse-based Tools Sebastien Marineau-Mes QNX Software Systems

QNX at Cisco Highlights è QNX/(KUE-nix): provider of realtime operating system (RTOS) software, development tools and services for mission-critical embedded applications > 24 years of realtime embedded experience > Millions of installations worldwide > Reputation for reliability, scalability, and innovation è QNX kernel chosen for new modular IOS and IOX > Microkernel architecture enables modularity > Technology used for mission-and life-critical systems brings bullet-proof reliability to carrier-class networks è Commercial QNX Neutrino selected by multiple business units within Cisco 2

Todays Agenda è Developer Environment & Challenges è Eclipse Framework: An Overview è The CDT Initiative è Eclipse-based Tools > Debugging > Code Coverage > System Analysis è Case Study: Optimizing Performance in Ciscos umg9850 Video-on-Demand (VOD) line card è QNX Momentics for IOS Initiative 3

Developer Environment è Complex systems, large code base è Aggressive delivery schedules and competitive market pressures è Multiple development teams, often in remote locations > Outsourcing > Revision control > Code integrity è Poor tool integration or proprietary tool base > Limited choice, reduced productivity 4

Eclipse Framework è Open platform for tool integration è Large and rapidly growing community of tool vendors and developers è Well-defined interfaces to ensure tools work together seamlessly > all tools in the IDE share the same look-and-feel è Extensible plug-in architecture for virtually any type of content, such as: > navigate C/C++ source code > analyze embedded flash and boot images > monitor live runtime performance 5

Eclipse Community 6

Current Eclipse Projects Core Platform Plug-In Development Tools Java Development Tools C/C++ Development Tools Cobol Development Tools Eclipse Modeling Framework Graphical Editor Framework Hyades Automated Testing Framework Visual Editor UML2 AspectJ Language Extensions AspectJ Development Tools ECESIS Educational Project Equinox Configuration and Platform Ubiquity Koi Collaboration Infrastructure GMT Generative Model Transformer Stellation Configuration Management WSVT Web Services Validation Tools XSD Infoset Model XML Schema Web Tools 7

Eclipse Plug-in Architecture Eclipse Platform Workbench SWT SWT JDT JDT // JFace JFace Workspace Workspace Platform Platform Runtime Runtime Help Help VCM VCM Existing Tool Tool Extension QDE New New Tool Tool Extension QNX Tools C/C++ C/C++ Development Development System System Information Information Profiler, Profiler, Memory Memory Analysis Analysis System System Profiling Profiling 8

CDT Project è C/C++ Development Tooling (CDT) Eclipse project launched July 2002 è QNX CDT founding member and development lead > CDT 1.2 Oct 2003 > CDT 2.0 planned for June 2004 (sync with Eclipse 3.0) è Broad tool and system vendor participation > IBM/Rational, Red Hat, Intel, Tensilica, Timesys, Altera, TI è Integration of components for C/C++ development > Design/Prototype and Development Tools > Static Code Analysis Tools > ICE and Hardware Debuggers > Simulators and Optimizing Compilers 9

General CDT Architecture Eclipse Platform Workbench JFace Debug C/C++ Debug C++ Debug Perspective Memory, Regs, Asm views CDI Interfaces, GDB/MI Plug-in SWT CDT Launch Launch Run/Debug session Glue between Core and Debug Team Workspace CDT Build Project builds Make and Managed Make Platform Runtime CDT Core C/C++ Editor Parsing, Outline, Indexing Code completion Search 10

Eclipse-based Tools: QNX Momentics Tight integration for higher productivity

QNX Momentics at a Glance Other Tools and Kits Command Line GCC Tools (GCC v3.3.1) Board Support Packages (BSPs) Device Driver Kits Customization and Source Kits Application Builder Third Party Plugin Tools Java Code Developer Static Analysis UML Source Code and Revision Control Code Editor IDE Tools C, C++ Code Developer Source Debugger Target System Tools Memory Analysis Application Profiler System Builder System Profiler Code Coverage Choose your host Windows, Linux, Solaris, QNX Neutrino Choose your target ARM, MIPS, PPC, SH4, XScale, x86 Choose your language C, C++, Java Choose your BSPs BSPs for many popular boards and reference platforms IDE Workbench Choose command line or IDE IDE and command line tools interoperate Development Host OS: Windows, Linux, Solaris, QNX Neutrino Choose 3 rd party tools Growing ecosystem of tools vendors supporting Eclipse 12

C/C++ Development è Integrated revision control > Local history of file modifications > Built-in support for CVS > Plug-in architecture for customized source control (e.g. Clearcase) è Integrated documentation è C/C++ editor features > Syntax highlighting > Auto code completion and code templates > Hover help integration > Code assist 13

QNX Momentics Tools C/C++ Development 14

Debugging è Multi-function integrated debugger > Multi-language (C/C++/Embedded C++/Java) > Multi-node/architecture > Multi-process and multi-thread support è Integrated with other IDE components è Debugger features > Context-sensitive editor integration > Launch, attach or post-mortem (core file) support > Stack-traces, variables, registers, breakpoints, 15

QNX Momentics Tools C/C++ Development 16

System Information è System, Process and Thread information summary > Similar to ps/top/pidin unix utilities è Process resource information > Virtual memory map > Memory (heap) allocator statistics and history > File descriptors & CPU usage è Remote filesystem navigator è Signals, blocking graphs, resource usage,... 17

QNX Momentics Tools System Information 18

Code Coverage è Identifies exercised source code paths > Allows developers to target code areas for performance analysis and debugging è Applications span QA, optimization, bug fixing, maintenance > QA methodology in military, automotive and medical > Optimizing tool > Useful for bug fixing and maintenance groups not involved with original code development è Fully integrated with other IDE components 19

20

System Analysis Tools è Memory Analysis > Memory allocation/deallocation tracking > Range checking with automatic debugger connectivity > Memory error detection (leak detection, overruns/underruns, double frees, etc) è Process Profiling > Statistical profiling of any active process > Instrumented compile provides call pair information > Graphical source code annotation 21

QNX Momentics Tools Other Development & Analysis Tools 22

QNX Momentics Tools Other Development & Analysis Tools 23

System Profiling è System level profiling and event overview è IDE provides remote control of instrumented kernel è Dynamic adjustable filtering > Data depth, Event classes, User handlers è Configurable instrumentation display > Interrupt, process and thread state timelines > Textual log view of raw event contents è Full context event search, bookmarking and annotation 24

System Profiling 25

Case Study Ciscos umg9850 Video-on-Demand (VOD) line card

Case Overview Description è umg9850 QAM Module for next-generation digital video networks è Can process full capacity of one Gigabit Ethernet link, which offers up to 240 standard-definition video streams without daisy chaining Assumptions è Data-centric video processing requires precise timing and optimal usage of CPU resources 27

Video Packet Flow and Processing MPEG Transport Stream over IP/UDP MPEG Packet Extraction Timing Processing SPTS Muxing Output FPGA Prog RF Output QAM Interleaving 28

Definition & Approach Problem: è Application could only process 92 MPEG video transport streams > Hitting more than 50 percent of timing budget (4 ms window) è Design required to process 240 streams > Full 1G per second worth of bandwidth/data > Cannot use more than 50% CPU for MPEG processing Approach: è Use system profiling to isolate which functions are being called most often and optimize where possible > System runs on QNX Neutrino RTOS > Began profiling eight weeks prior to testing 29

4ms Timer IRQ MPEG Processing 75% CPU Usage 30

Functions to optimize 31

4ms Timer IRQ MPEG Processing 50% CPU Usage 32

Results è Visualized where problem was occurring and used information to optimize system cache è Reached 240 MPEG streams throughput è Application deployed on time > Were able to meet an aggressive schedule è Now using profiling to increase processing capacity for next release of product 33

System Profiling for IOS

Tracing at Cisco è Use tracing extensively to find performance and scalability problems è Home-grown tools > XRay, ELog, etc. > Most of these tools are good in tracing code paths and finding low level performance problems > Require special image build > Limited GUI support 35

Possible Future è High-level system view to show various activity in the box > State of various processes, queues, etc., in system > Process state transitions > Filters to collect user-specified events è Graphical User Interface > Multiple views to look at the data > Filters to display user specified events only è Cost > Low when enabled > Ideally, none when not enabled (TBD) è Extensible > User defined events can be added 36

Instrumented Kernel IOS Process/thread creation System calls Interrupts Static event filters IOS Task Events IOS watched Events State changes Microkernel State changes Events On/Off filters User defined filters On/Off Static User IOS Logging Event buffers E1 E2 E3 E4 E5 E6 System Profiler Network Capture Merge File 37

IOS Trace 38

Ping è NPE-400 router running ION with instrumentation è Trace captured during test è Flood ping originated by router 39

Tracing a Ping Cycle 40

BGP Convergence è Standard BGP convergence test (20 routes) è NPE-400 router running ION with instrumentation è Trace captured during test 41

BGP Convergence Packet Input TCP Processing BGP I/O 42

Search Example Search Results Search Window 43

ION and IOS Profiler è ION version to be delivered to Cisco beginning of June > Pure IOS version to follow > To try it out, please contact QNX or Mike Turnlund è Come see a full demo at the QNX booth è Discussions with Cisco on integrating other QNX tools to target IOS 44

Summary è Eclipse-based IDE provides standard, flexible platform for tool integration è Powerful suite of tools enable accelerated development, improved performance, and higher quality è QNX Momentics available today for QNX-based systems è Efforts underway to integrate selected Momentics tools for IOS-based systems 45

Thanks for Your Time! è Download the case study Using System Tracing to Improve Packet Forwarding Performance: http://www.qnx.com/info/systemtracing è Find out whats coming in QNX Momentics v6.3: http://www.qnx.com/developers/6_3_glance.html è Evaluate QNX Momentics today: http://www.qnx.com/products/eval/index.html è Contact Jim Gallagher (jgallagher@qnx.com) or Sebastien Marineau (sebastien@qnx.com) for more information 46