accelerating delivery of quality systems with eclipse

46
May 28, 2004 Accelerating Delivery of Quality Systems with Eclipse-based Tools Sebastien Marineau-Mes QNX Software Systems

Upload: others

Post on 24-May-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Accelerating Delivery of Quality Systems with Eclipse

May 28, 2004

Accelerating Delivery of Quality Systems with Eclipse-based ToolsSebastien Marineau-MesQNX Software Systems

Page 2: Accelerating Delivery of Quality Systems with Eclipse

2May 28, 2004 QNX Confidential. All content copyright 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

Page 3: Accelerating Delivery of Quality Systems with Eclipse

3May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Today�s Agenda

è Developer Environment & Challenges

è Eclipse Framework: An Overview

è The CDT Initiative

è Eclipse-based Tools> Debugging> Code Coverage> System Analysis

è Case Study: Optimizing Performance in Cisco�s uMG9850 Video-on-Demand (VOD) line card

è QNX Momentics for IOS Initiative

Page 4: Accelerating Delivery of Quality Systems with Eclipse

4May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 5: Accelerating Delivery of Quality Systems with Eclipse

5May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 6: Accelerating Delivery of Quality Systems with Eclipse

6May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Eclipse Community

Page 7: Accelerating Delivery of Quality Systems with Eclipse

7May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

� Web Tools

� 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

Page 8: Accelerating Delivery of Quality Systems with Eclipse

8May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Existing Tool ExtensionExisting Tool Extension

WorkspaceWorkspace

QDEC/C++ DevelopmentSystem InformationProfiler, Memory AnalysisSystem Profiling

C/C++ DevelopmentSystem InformationProfiler, Memory AnalysisSystem Profiling

QNX Tools

New Tool ExtensionNew Tool ExtensionEclipse Platform

Workbench

HelpHelp

VCMVCM

JDT / JFaceJDT / JFace

SWTSWT

Platform RuntimePlatform Runtime

Eclipse Plug-in Architecture

Page 9: Accelerating Delivery of Quality Systems with Eclipse

9May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 10: Accelerating Delivery of Quality Systems with Eclipse

10May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

General CDT Architecture

Eclipse Platform

Platform Runtime

Workspace

Debug

Team

Workbench C/C++ DebugC++ Debug PerspectiveMemory, Regs, Asm viewsCDI Interfaces, GDB/MI Plug-in

CDT Launch Launch Run/Debug sessionGlue between Core and Debug

C/C++ EditorParsing, Outline, IndexingCode completionSearch

CDT Core

CDT Build Project buildsMake and Managed Make

SWT

JFace

Page 11: Accelerating Delivery of Quality Systems with Eclipse

May 28, 2004

Eclipse-based Tools: QNX MomenticsTight integration for higher productivity

Page 12: Accelerating Delivery of Quality Systems with Eclipse

12May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

QNX Momentics at a Glance

Source Debugger

C, C++ Code Developer

Target System Tools

Memory Analysis

Application Profiler

System Builder

System Profiler

Application Builder

Java Code Developer

Static Analysis

UML

Source Code and Revision Control

Code Editor

Board SupportPackages (BSPs)

Command Line GCC

Tools (GCC v3.3.1)

Device Driver Kits

Customizationand

Source Kits

IDE Workbench

Development Host OS: Windows, Linux, Solaris, QNX Neutrino

Choose your hostWindows, Linux, Solaris, QNX

Neutrino

Choose your languageC, C++, Java

Choose your targetARM, MIPS, PPC, SH4, XScale, x86

Choose your BSPsBSPs for many popular boards and

reference platforms

Third Party PluginTools

IDE ToolsOther Tools and Kits

Choose command line or IDE

IDE and command line tools interoperate

Choose 3rd party toolsGrowing ecosystem of tools vendors supporting Eclipse

Code Coverage

Page 13: Accelerating Delivery of Quality Systems with Eclipse

13May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 14: Accelerating Delivery of Quality Systems with Eclipse

14May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

C/C++ Development

QNX Momentics Tools

Page 15: Accelerating Delivery of Quality Systems with Eclipse

15May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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, �

Page 16: Accelerating Delivery of Quality Systems with Eclipse

16May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

C/C++ Development

QNX Momentics Tools

Page 17: Accelerating Delivery of Quality Systems with Eclipse

17May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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, ...

Page 18: Accelerating Delivery of Quality Systems with Eclipse

18May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

System Information

QNX Momentics Tools

Page 19: Accelerating Delivery of Quality Systems with Eclipse

19May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 20: Accelerating Delivery of Quality Systems with Eclipse

20May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Page 21: Accelerating Delivery of Quality Systems with Eclipse

21May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 22: Accelerating Delivery of Quality Systems with Eclipse

22May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

QNX Momentics Tools

Other Development & Analysis Tools

Page 23: Accelerating Delivery of Quality Systems with Eclipse

23May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

QNX Momentics Tools

Other Development & Analysis Tools

Page 24: Accelerating Delivery of Quality Systems with Eclipse

24May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 25: Accelerating Delivery of Quality Systems with Eclipse

25May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

System Profiling

Page 26: Accelerating Delivery of Quality Systems with Eclipse

May 28, 2004

Case Study

Cisco�s uMG9850 Video-on-Demand (VOD) line card

Page 27: Accelerating Delivery of Quality Systems with Eclipse

27May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 28: Accelerating Delivery of Quality Systems with Eclipse

28May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Video Packet Flow and Processing

MPEG Packet

Extraction

MPEG Transport

Stream over IP/UDP

QAM Interleaving

RF Output

Timing Processing

SPTS Muxing

Output FPGA Prog

Page 29: Accelerating Delivery of Quality Systems with Eclipse

29May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 30: Accelerating Delivery of Quality Systems with Eclipse

30May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

4msTimer IRQ

MPEG Processing

75% CPU Usage

Page 31: Accelerating Delivery of Quality Systems with Eclipse

31May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Functions to optimize

Page 32: Accelerating Delivery of Quality Systems with Eclipse

32May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

4msTimer IRQ

MPEG Processing

50% CPU Usage

Page 33: Accelerating Delivery of Quality Systems with Eclipse

33May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 34: Accelerating Delivery of Quality Systems with Eclipse

May 28, 2004

System Profiling for IOS

Page 35: Accelerating Delivery of Quality Systems with Eclipse

35May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 36: Accelerating Delivery of Quality Systems with Eclipse

36May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 37: Accelerating Delivery of Quality Systems with Eclipse

37May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Instrumented Kernel � IOS

Microkernel

Statechanges

InterruptsProcess/threadcreation

Systemcalls

Events

On/Off filters

Static event filters

User defined filters

E1 E2 E3 E4 E5 E6

Event buffers

Capture

File

System Profiler

Network

Merge

IOS Task Events

IOS watched Events

IOS Logging

Statechanges

User

Static

On/Off

Page 38: Accelerating Delivery of Quality Systems with Eclipse

38May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

IOS Trace

Page 39: Accelerating Delivery of Quality Systems with Eclipse

39May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Ping

è NPE-400 router running ION with instrumentation

è Trace captured during test

è Flood ping originated by router

Page 40: Accelerating Delivery of Quality Systems with Eclipse

40May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Tracing a Ping Cycle

Page 41: Accelerating Delivery of Quality Systems with Eclipse

41May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

BGP Convergence

è Standard BGP convergence test (20 routes)

è NPE-400 router running ION with instrumentation

è Trace captured during test

Page 42: Accelerating Delivery of Quality Systems with Eclipse

42May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

BGP Convergence

Packet Input

TCP Processing

BGP I/O

Page 43: Accelerating Delivery of Quality Systems with Eclipse

43May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Search Example

SearchWindow

SearchResults

Page 44: Accelerating Delivery of Quality Systems with Eclipse

44May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 45: Accelerating Delivery of Quality Systems with Eclipse

45May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

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

Page 46: Accelerating Delivery of Quality Systems with Eclipse

46May 28, 2004 QNX Confidential. All content copyright QNX Software Systems.

Thanks for Your Time!

è Download the case study � Using System Tracing to Improve Packet Forwarding Performance: http://www.qnx.com/info/systemtracing

è Find out what�s 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 ([email protected]) or SebastienMarineau ([email protected]) for more information