SlideShare a Scribd company logo
The Architecture for the Digital World®
Introduction to LISA
Linux Interactive System Analysis
Patrick Bellasi
patrick.bellasi@arm.com
2
Agenda
Presentation outline

Short introduction of the main goals of the LISA toolkit
What do we need and why?

Overall view of the main framework components

Example usage scenario
Interactive session with questions

Detailed examples of each LISA module
(Subject to interest and time availability)
3
Motivations
What is the aim of LISA[1]
A toolkit to support interactive analysis

Supports the study of existing behaviours
e.g. Helps with - “how the hell does this PELT thing work?”

Supports the analysis of new code being developed
e.g. What is the impact of code modifications on key behaviours ?

Get insights on what's not working and possibly why

Common language to share reproducible experiments
Allows to reproduce experiments on different targets
Flexible enough: programmers like extensible APIs
[1] https://github.com/ARM-software/lisa
4
Motivations
Why (yet) another toolkit?

Many different test suite already exist
KernelCI: mainly "just" build and boot validation... but a lot of it
LTP: “validate the reliability, robustness, and stability of Linux”
Intel's 0-day: continuous regression testing for mainline kernel

These are mainly Black-box analyses which do not give
enough insights
Benchmarks show regressions but do not pinpoint their reasons
Brute force analysis can point just to a specific patch
Still just reports what code is broken but usually not why or how
5
Motivations
What do we need?

Simple yet powerful API to
Generate test workloads and execute on test targets
Synthetic workloads allow to stimulate specific behaviours
Post process collected data to produce stats and plots
A graphical representation is usually easy to understand than numbers

Main counter arguments
We have rt-app, is it not enough?
I can do everything with a bash scripts and some other tools
LISA doesn't want to replace them,
just make them (possibly) more easy to use
6
Motivations
Abstract view of the flow

Experimenting using an “interactive environment”

Data analysis and
post-processing

Tests definitions to
support regression
analysis
Evaluate trade-offs
on Power/Performances Classical flow vs LISA flow
7
Toolkit Organization
Bird's eye view of the main components
Hardware Abstraction Layer
Data Collection and Analysis
Automated tests
Interactive test and analysis
8
Example Usage Scenario
What you will see?

Configure a connection to a target[1]
Interactive execution of custom commands

Configuration and execution of a synthetic workload[2]
Using the rt-app workload generator
Collection of energy samples

Trace analysis examples[3]
Plotting of signals reported by trace events

Data analysis examples[3]
Extracting information from trace events

Behavioural analysis examples[4]
Assertions on tasks behaviors Hands On
https://github.com/ARM-software/devlib [1]
https://github.com/ARM-software/lisa [2]
https://github.com/ARM-software/trappy [3]
https://github.com/ARM-software/bart [4]
9
Detailed Examples
A bottom up presentation of all LISA modules
10
Main Components
IPython Notebooks: Interactive Python Scripting (and more)

What is a Notebook?
Web based interface for “interactive” code execution
Code organized into cells which can be re-executed out-of-order
Support for different languages and code completion
Easy access to embedded documentation
Key bindings available for all the main actions

How can a notebook be used?
Interactively build experiments
Generate reports which can be exported in HTML
Which mixes code and comments
Export code as a standalone python script
11
Main Components
IPython Notebooks: Example

Enter the LISA Shell
Custom commands are available
for most common operations

Start the notebook server
By default uses the local version
of needed libraries
Easy access to the code of internal
modules
Thus you can easily contribute your
patches back to the mainline ;-)
Hands On
12
Main Components
Devlib[1]
: Target Abstraction

Low-level library used by WorkloadAutomation

Command execution is on the remote target
Supports multiple platforms: linux, android (and chromeos)
Using SSH or ADB as communication channels
Single connection for all commands

Provides APIs for the main Linux frameworks
Generic modules: cgroups, cpufreq, cpuidle, hotplug, hwmon, thermal
Special modules: android, biglittle

Support energy measurement instruments
TC2/Juno energy counters, ARM EnergyProbe, DAQs
Docs
[1] https://github.com/ARM-software/devlib
[2] https://github.com/ARM-software/workload-automation
13
Main Components
TestEnv: Test Environment setup for specific Targets

In a nutshell: a wrapper of devlib
Simplifies code in notebooks and tests
Provides the glue-code to setup a test environment
E.g. connect to client, initialize modules, setup the output folder
Allows the definition of the setup in a declarative format
Could be either a file or an inline python dictionary
Exposes the devlib API

Provides additional APIs for some common tasks
E.g. deploy a different kernel, reboot the target
Hands On
14
Main Components
WlGen: portable Synthetic Workloads generation

Synthetic workloads configuration and execution
perf bench sched
messaging (aka hackbench) and pipe
rt-app
set of base behaviours (periodic, step, ramp, …) which can be composed
to create more complex execution scenarios
custom JSON configuration

Execution tunables support:
CPU pinning, CGroups, FTrace
Hands On
15
Main Components
Executor: tests configuration and data collection

Simple automation for experimental data collection

Using a simple dictionary or JSON configuration
confs target configurations to test
wloads synthetic workloads to execute on each configuration
iterations number of executions for each wload
Hands On
16
Main Components
TRAPpy[1]
: From FTrace events to PANDAS DataFrames

Based on PANDAS DataFrames
Python “standard” framework for data analysis and statistics
ftrace events are translated into tables
Events must match a specific template: (unique_word): ((key)=(value))+
Example (raw trace, i.e. generated by trace-cmd report -r):
sudo-3224 [001] 228774.292951: sched_switch: prev_comm=sudo prev_pid=3224 prev_prio=120 prev_state=2048
next_comm=kschedfreq:1 next_pid=1822 next_prio=49

API for trace event analysis
Plots of table:key “signals”
both static and interactive plots
Provide data structure support for BART
http://pandas.pydata.org/
Hands On
[1] https://github.com/ARM-software/trappy
Docs
17
Data Analysis
Exploiting Platform Data for Trace Analysis

Platform specific information can be useful
e.g. CPU topology, OPP curves, EnergyModel data, …
Information on these are collected by TestEnv
platform.json file in the results folder (i.e. te.res_dir)

TRAPpy is a generic module for trace events parsing
It does not know about a specific platform
Even if this information are available via the LISA::TestEnv module
although we can combine “on-demand” TRAPpy with platform
data some commonly used analysis are worth to be shared
18
Data Analysis
Filtering and Plotting Predefined functions
Hands On

LISA::Trace glues platform data
with TRAPpy DataFrames
more complete analysis dataset

LISA::Filters
commonly used events filtering functions

LISA::TraceAnalysis
commonly used trace events plots

LISA::PerfAnalysis
commonly used performance plots
19
Data Analysis
Using RT-App to evaluate task performances

RT-App extended to report performance metrics[1]
suitable to evaluate some EAS behaviors
optimal CPU/OPP selection and SchedTune boosting
too pessimistic on single period missing
we will add an option to reset metrics after each new activation

Other metrics can be added
Linaro proposed a “dropped-frames” counter,
we should integrate that as well
MaxSlack=Periodconf −RunTimeconf
PerfIndex=
Periodconf −RunTimemeas
MaxSlack
NegSlackpercent =
∑ Max(0,RunTimemeas−Periodconf )
∑RunTimemeas
[1] libs/utils/results.py::RTAppPerf
Hands On
20
Automated Testing
LisaTest: Regression Testing Analysis

Support for batch execution of tests
data collection driven by the lisa::executor module
easy to develop code on Notebook and than convert to a test
config file based tests definition
a JSON file is used to describe “confs” and “wloads”

Tests executes after data collection complete
execution model based on standard python nosetest
each test is defined within a function which name starts by “test_”

Post processing and reporting functions available
21
Automated Testing
Evaluation of Energy-Performances tread-offs

We can spent more energy provided that we get some
performance benefits
SchedTune aims at controling this trade-off at run-time

Experiments reports Energy-vs-Performance metrics
EDP=Energy∗∑ RunTimemeas
Energy Delay Product (EDP)
22
Automated Testing
BART[1]
: Behavioural Analysis

Set of APIs on top of TRAPpy DataFrames
allows to extract “features” from trace events
How long a task run on a CPU? Does it switch to another CPU?
How long the temperature remain within a specified range?
Advanced tests for “sched switches” and “thermal events”
the API is (going to be) generic enough to introduce other events

Aims at supporting the definition of behavioural tests
small and self-contained functional behaviour
e.g. task migration, frequency switch, OPP capping
a failure should pinpoint a specific code path
suitable to evaluate the impact of code additions/updates
[1] https://github.com/ARM-software/bart

More Related Content

What's hot

Device Driver in WinCE 6.0 R2
Device Driver in WinCE 6.0 R2Device Driver in WinCE 6.0 R2
Device Driver in WinCE 6.0 R2
rahul_p_shukla
 
Linux Programming
Linux ProgrammingLinux Programming
3rd 3DDRESD: OSyRIS
3rd 3DDRESD: OSyRIS3rd 3DDRESD: OSyRIS
3rd 3DDRESD: OSyRIS
Marco Santambrogio
 
An Integrated Asset Management Solution For Quantel sQ Servers
An Integrated Asset Management Solution For Quantel sQ ServersAn Integrated Asset Management Solution For Quantel sQ Servers
An Integrated Asset Management Solution For Quantel sQ Servers
Quantel
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
Tech_MX
 
Nachos
NachosNachos
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
Quotient Technology Inc.
 
Linux internal
Linux internalLinux internal
Linux internal
mcganesh
 
Real Time Kernels
Real Time KernelsReal Time Kernels
Real Time Kernels
Arnav Soni
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linux
Vandana Salve
 
Linux Module Programming
Linux Module ProgrammingLinux Module Programming
Linux Module Programming
Amir Payberah
 
Jython for embedded software validation
Jython for embedded software validationJython for embedded software validation
Jython for embedded software validation
PyCon Italia
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
Shay Cohen
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
Emertxe Information Technologies Pvt Ltd
 
Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0
Emertxe Information Technologies Pvt Ltd
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
mukul bhardwaj
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
Vandana Salve
 
System performance monitoring pcp + vector
System performance monitoring   pcp + vectorSystem performance monitoring   pcp + vector
System performance monitoring pcp + vector
Sandeep Kunkunuru
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
Liran Ben Haim
 
Overall 23 11_2007_hdp
Overall 23 11_2007_hdpOverall 23 11_2007_hdp
Overall 23 11_2007_hdp
Mohd Arif
 

What's hot (20)

Device Driver in WinCE 6.0 R2
Device Driver in WinCE 6.0 R2Device Driver in WinCE 6.0 R2
Device Driver in WinCE 6.0 R2
 
Linux Programming
Linux ProgrammingLinux Programming
Linux Programming
 
3rd 3DDRESD: OSyRIS
3rd 3DDRESD: OSyRIS3rd 3DDRESD: OSyRIS
3rd 3DDRESD: OSyRIS
 
An Integrated Asset Management Solution For Quantel sQ Servers
An Integrated Asset Management Solution For Quantel sQ ServersAn Integrated Asset Management Solution For Quantel sQ Servers
An Integrated Asset Management Solution For Quantel sQ Servers
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
 
Nachos
NachosNachos
Nachos
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
 
Linux internal
Linux internalLinux internal
Linux internal
 
Real Time Kernels
Real Time KernelsReal Time Kernels
Real Time Kernels
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linux
 
Linux Module Programming
Linux Module ProgrammingLinux Module Programming
Linux Module Programming
 
Jython for embedded software validation
Jython for embedded software validationJython for embedded software validation
Jython for embedded software validation
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
 
Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
System performance monitoring pcp + vector
System performance monitoring   pcp + vectorSystem performance monitoring   pcp + vector
System performance monitoring pcp + vector
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Overall 23 11_2007_hdp
Overall 23 11_2007_hdpOverall 23 11_2007_hdp
Overall 23 11_2007_hdp
 

Viewers also liked

Linux Power Management Slideshare
Linux Power Management SlideshareLinux Power Management Slideshare
Linux Power Management Slideshare
Patrick Bellasi
 
Power management
Power managementPower management
Power management
Scott Shu
 
LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination Interface
Linaro
 
Device tree support on arm linux
Device tree support on arm linuxDevice tree support on arm linux
Device tree support on arm linux
Chih-Min Chao
 
Embedded Systems Power Management
Embedded Systems Power ManagementEmbedded Systems Power Management
Embedded Systems Power Management
Patrick Bellasi
 
Android power management
Android power managementAndroid power management
Android power management
Jerrin George
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
Patrick Bellasi
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
Sherif Mousa
 
Power Management from Linux Kernel to Android
Power Management from Linux Kernel to AndroidPower Management from Linux Kernel to Android
Power Management from Linux Kernel to Android
National Cheng Kung University
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
Houcheng Lin
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
 
SFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress UpdateSFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress Update
Linaro
 
The Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxThe Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on Linux
Picker Weng
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
Sherif Mousa
 

Viewers also liked (14)

Linux Power Management Slideshare
Linux Power Management SlideshareLinux Power Management Slideshare
Linux Power Management Slideshare
 
Power management
Power managementPower management
Power management
 
LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination Interface
 
Device tree support on arm linux
Device tree support on arm linuxDevice tree support on arm linux
Device tree support on arm linux
 
Embedded Systems Power Management
Embedded Systems Power ManagementEmbedded Systems Power Management
Embedded Systems Power Management
 
Android power management
Android power managementAndroid power management
Android power management
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Power Management from Linux Kernel to Android
Power Management from Linux Kernel to AndroidPower Management from Linux Kernel to Android
Power Management from Linux Kernel to Android
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
SFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress UpdateSFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress Update
 
The Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxThe Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on Linux
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 

Similar to Linaro Connect 2016 (BKK16) - Introduction to LISA

Probe Debugging
Probe DebuggingProbe Debugging
Probe Debugging
ESUG
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
Hajime Tazaki
 
Madeo - a CAD Tool for reconfigurable Hardware
Madeo - a CAD Tool for reconfigurable HardwareMadeo - a CAD Tool for reconfigurable Hardware
Madeo - a CAD Tool for reconfigurable Hardware
ESUG
 
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
jsvetter
 
Scaling Application on High Performance Computing Clusters and Analysis of th...
Scaling Application on High Performance Computing Clusters and Analysis of th...Scaling Application on High Performance Computing Clusters and Analysis of th...
Scaling Application on High Performance Computing Clusters and Analysis of th...
Rusif Eyvazli
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
Diane Allen
 
Practical SPARQL Benchmarking Revisited
Practical SPARQL Benchmarking RevisitedPractical SPARQL Benchmarking Revisited
Practical SPARQL Benchmarking Revisited
Rob Vesse
 
Balancing Power & Performance Webinar
Balancing Power & Performance WebinarBalancing Power & Performance Webinar
Balancing Power & Performance Webinar
Qualcomm Developer Network
 
OS for AI: Elastic Microservices & the Next Gen of ML
OS for AI: Elastic Microservices & the Next Gen of MLOS for AI: Elastic Microservices & the Next Gen of ML
OS for AI: Elastic Microservices & the Next Gen of ML
Nordic APIs
 
Unit 1
Unit  1Unit  1
Unit 1
donny101
 
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
DevOps.com
 
Track A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBMTrack A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBM
chiportal
 
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Animesh Singh
 
Lab6 rtos
Lab6 rtosLab6 rtos
Lab6 rtos
indirakumar86
 
Apache Flink Overview at SF Spark and Friends
Apache Flink Overview at SF Spark and FriendsApache Flink Overview at SF Spark and Friends
Apache Flink Overview at SF Spark and Friends
Stephan Ewen
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_Validation
MichaelJoshua
 
Flink internals web
Flink internals web Flink internals web
Flink internals web
Kostas Tzoumas
 
TechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityTechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching Programmability
Robb Boyd
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
Bruce Johnson
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
lienhard
 

Similar to Linaro Connect 2016 (BKK16) - Introduction to LISA (20)

Probe Debugging
Probe DebuggingProbe Debugging
Probe Debugging
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
Madeo - a CAD Tool for reconfigurable Hardware
Madeo - a CAD Tool for reconfigurable HardwareMadeo - a CAD Tool for reconfigurable Hardware
Madeo - a CAD Tool for reconfigurable Hardware
 
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
 
Scaling Application on High Performance Computing Clusters and Analysis of th...
Scaling Application on High Performance Computing Clusters and Analysis of th...Scaling Application on High Performance Computing Clusters and Analysis of th...
Scaling Application on High Performance Computing Clusters and Analysis of th...
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
Practical SPARQL Benchmarking Revisited
Practical SPARQL Benchmarking RevisitedPractical SPARQL Benchmarking Revisited
Practical SPARQL Benchmarking Revisited
 
Balancing Power & Performance Webinar
Balancing Power & Performance WebinarBalancing Power & Performance Webinar
Balancing Power & Performance Webinar
 
OS for AI: Elastic Microservices & the Next Gen of ML
OS for AI: Elastic Microservices & the Next Gen of MLOS for AI: Elastic Microservices & the Next Gen of ML
OS for AI: Elastic Microservices & the Next Gen of ML
 
Unit 1
Unit  1Unit  1
Unit 1
 
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
 
Track A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBMTrack A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBM
 
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
 
Lab6 rtos
Lab6 rtosLab6 rtos
Lab6 rtos
 
Apache Flink Overview at SF Spark and Friends
Apache Flink Overview at SF Spark and FriendsApache Flink Overview at SF Spark and Friends
Apache Flink Overview at SF Spark and Friends
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_Validation
 
Flink internals web
Flink internals web Flink internals web
Flink internals web
 
TechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityTechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching Programmability
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 

Recently uploaded

Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
OnePlan Solutions
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
mohitd6
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
kalichargn70th171
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 

Recently uploaded (20)

Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 

Linaro Connect 2016 (BKK16) - Introduction to LISA

  • 1. The Architecture for the Digital World® Introduction to LISA Linux Interactive System Analysis Patrick Bellasi patrick.bellasi@arm.com
  • 2. 2 Agenda Presentation outline  Short introduction of the main goals of the LISA toolkit What do we need and why?  Overall view of the main framework components  Example usage scenario Interactive session with questions  Detailed examples of each LISA module (Subject to interest and time availability)
  • 3. 3 Motivations What is the aim of LISA[1] A toolkit to support interactive analysis  Supports the study of existing behaviours e.g. Helps with - “how the hell does this PELT thing work?”  Supports the analysis of new code being developed e.g. What is the impact of code modifications on key behaviours ?  Get insights on what's not working and possibly why  Common language to share reproducible experiments Allows to reproduce experiments on different targets Flexible enough: programmers like extensible APIs [1] https://github.com/ARM-software/lisa
  • 4. 4 Motivations Why (yet) another toolkit?  Many different test suite already exist KernelCI: mainly "just" build and boot validation... but a lot of it LTP: “validate the reliability, robustness, and stability of Linux” Intel's 0-day: continuous regression testing for mainline kernel  These are mainly Black-box analyses which do not give enough insights Benchmarks show regressions but do not pinpoint their reasons Brute force analysis can point just to a specific patch Still just reports what code is broken but usually not why or how
  • 5. 5 Motivations What do we need?  Simple yet powerful API to Generate test workloads and execute on test targets Synthetic workloads allow to stimulate specific behaviours Post process collected data to produce stats and plots A graphical representation is usually easy to understand than numbers  Main counter arguments We have rt-app, is it not enough? I can do everything with a bash scripts and some other tools LISA doesn't want to replace them, just make them (possibly) more easy to use
  • 6. 6 Motivations Abstract view of the flow  Experimenting using an “interactive environment”  Data analysis and post-processing  Tests definitions to support regression analysis Evaluate trade-offs on Power/Performances Classical flow vs LISA flow
  • 7. 7 Toolkit Organization Bird's eye view of the main components Hardware Abstraction Layer Data Collection and Analysis Automated tests Interactive test and analysis
  • 8. 8 Example Usage Scenario What you will see?  Configure a connection to a target[1] Interactive execution of custom commands  Configuration and execution of a synthetic workload[2] Using the rt-app workload generator Collection of energy samples  Trace analysis examples[3] Plotting of signals reported by trace events  Data analysis examples[3] Extracting information from trace events  Behavioural analysis examples[4] Assertions on tasks behaviors Hands On https://github.com/ARM-software/devlib [1] https://github.com/ARM-software/lisa [2] https://github.com/ARM-software/trappy [3] https://github.com/ARM-software/bart [4]
  • 9. 9 Detailed Examples A bottom up presentation of all LISA modules
  • 10. 10 Main Components IPython Notebooks: Interactive Python Scripting (and more)  What is a Notebook? Web based interface for “interactive” code execution Code organized into cells which can be re-executed out-of-order Support for different languages and code completion Easy access to embedded documentation Key bindings available for all the main actions  How can a notebook be used? Interactively build experiments Generate reports which can be exported in HTML Which mixes code and comments Export code as a standalone python script
  • 11. 11 Main Components IPython Notebooks: Example  Enter the LISA Shell Custom commands are available for most common operations  Start the notebook server By default uses the local version of needed libraries Easy access to the code of internal modules Thus you can easily contribute your patches back to the mainline ;-) Hands On
  • 12. 12 Main Components Devlib[1] : Target Abstraction  Low-level library used by WorkloadAutomation  Command execution is on the remote target Supports multiple platforms: linux, android (and chromeos) Using SSH or ADB as communication channels Single connection for all commands  Provides APIs for the main Linux frameworks Generic modules: cgroups, cpufreq, cpuidle, hotplug, hwmon, thermal Special modules: android, biglittle  Support energy measurement instruments TC2/Juno energy counters, ARM EnergyProbe, DAQs Docs [1] https://github.com/ARM-software/devlib [2] https://github.com/ARM-software/workload-automation
  • 13. 13 Main Components TestEnv: Test Environment setup for specific Targets  In a nutshell: a wrapper of devlib Simplifies code in notebooks and tests Provides the glue-code to setup a test environment E.g. connect to client, initialize modules, setup the output folder Allows the definition of the setup in a declarative format Could be either a file or an inline python dictionary Exposes the devlib API  Provides additional APIs for some common tasks E.g. deploy a different kernel, reboot the target Hands On
  • 14. 14 Main Components WlGen: portable Synthetic Workloads generation  Synthetic workloads configuration and execution perf bench sched messaging (aka hackbench) and pipe rt-app set of base behaviours (periodic, step, ramp, …) which can be composed to create more complex execution scenarios custom JSON configuration  Execution tunables support: CPU pinning, CGroups, FTrace Hands On
  • 15. 15 Main Components Executor: tests configuration and data collection  Simple automation for experimental data collection  Using a simple dictionary or JSON configuration confs target configurations to test wloads synthetic workloads to execute on each configuration iterations number of executions for each wload Hands On
  • 16. 16 Main Components TRAPpy[1] : From FTrace events to PANDAS DataFrames  Based on PANDAS DataFrames Python “standard” framework for data analysis and statistics ftrace events are translated into tables Events must match a specific template: (unique_word): ((key)=(value))+ Example (raw trace, i.e. generated by trace-cmd report -r): sudo-3224 [001] 228774.292951: sched_switch: prev_comm=sudo prev_pid=3224 prev_prio=120 prev_state=2048 next_comm=kschedfreq:1 next_pid=1822 next_prio=49  API for trace event analysis Plots of table:key “signals” both static and interactive plots Provide data structure support for BART http://pandas.pydata.org/ Hands On [1] https://github.com/ARM-software/trappy Docs
  • 17. 17 Data Analysis Exploiting Platform Data for Trace Analysis  Platform specific information can be useful e.g. CPU topology, OPP curves, EnergyModel data, … Information on these are collected by TestEnv platform.json file in the results folder (i.e. te.res_dir)  TRAPpy is a generic module for trace events parsing It does not know about a specific platform Even if this information are available via the LISA::TestEnv module although we can combine “on-demand” TRAPpy with platform data some commonly used analysis are worth to be shared
  • 18. 18 Data Analysis Filtering and Plotting Predefined functions Hands On  LISA::Trace glues platform data with TRAPpy DataFrames more complete analysis dataset  LISA::Filters commonly used events filtering functions  LISA::TraceAnalysis commonly used trace events plots  LISA::PerfAnalysis commonly used performance plots
  • 19. 19 Data Analysis Using RT-App to evaluate task performances  RT-App extended to report performance metrics[1] suitable to evaluate some EAS behaviors optimal CPU/OPP selection and SchedTune boosting too pessimistic on single period missing we will add an option to reset metrics after each new activation  Other metrics can be added Linaro proposed a “dropped-frames” counter, we should integrate that as well MaxSlack=Periodconf −RunTimeconf PerfIndex= Periodconf −RunTimemeas MaxSlack NegSlackpercent = ∑ Max(0,RunTimemeas−Periodconf ) ∑RunTimemeas [1] libs/utils/results.py::RTAppPerf Hands On
  • 20. 20 Automated Testing LisaTest: Regression Testing Analysis  Support for batch execution of tests data collection driven by the lisa::executor module easy to develop code on Notebook and than convert to a test config file based tests definition a JSON file is used to describe “confs” and “wloads”  Tests executes after data collection complete execution model based on standard python nosetest each test is defined within a function which name starts by “test_”  Post processing and reporting functions available
  • 21. 21 Automated Testing Evaluation of Energy-Performances tread-offs  We can spent more energy provided that we get some performance benefits SchedTune aims at controling this trade-off at run-time  Experiments reports Energy-vs-Performance metrics EDP=Energy∗∑ RunTimemeas Energy Delay Product (EDP)
  • 22. 22 Automated Testing BART[1] : Behavioural Analysis  Set of APIs on top of TRAPpy DataFrames allows to extract “features” from trace events How long a task run on a CPU? Does it switch to another CPU? How long the temperature remain within a specified range? Advanced tests for “sched switches” and “thermal events” the API is (going to be) generic enough to introduce other events  Aims at supporting the definition of behavioural tests small and self-contained functional behaviour e.g. task migration, frequency switch, OPP capping a failure should pinpoint a specific code path suitable to evaluate the impact of code additions/updates [1] https://github.com/ARM-software/bart