SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (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
 

Andere mochten auch

Linux Power Management Slideshare
Linux Power Management SlideshareLinux Power Management Slideshare
Linux Power Management SlidesharePatrick Bellasi
 
Power management
Power managementPower management
Power managementScott Shu
 
LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLinaro
 
Device tree support on arm linux
Device tree support on arm linuxDevice tree support on arm linux
Device tree support on arm linuxChih-Min Chao
 
Embedded Systems Power Management
Embedded Systems Power ManagementEmbedded Systems Power Management
Embedded Systems Power ManagementPatrick Bellasi
 
Android power management
Android power managementAndroid power management
Android power managementJerrin George
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom BoardPatrick Bellasi
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng 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 driversHoucheng 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 UpdateLinaro
 
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 LinuxPicker 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 ARMSherif Mousa
 

Andere mochten auch (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
 

Ähnlich wie Linaro Connect 2016 (BKK16) - Introduction to LISA

Probe Debugging
Probe DebuggingProbe Debugging
Probe DebuggingESUG
 
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.1Hajime 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 HardwareESUG
 
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 3Diane Allen
 
Practical SPARQL Benchmarking Revisited
Practical SPARQL Benchmarking RevisitedPractical SPARQL Benchmarking Revisited
Practical SPARQL Benchmarking RevisitedRob Vesse
 
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 MLNordic APIs
 
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 - IBMchiportal
 
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
 
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 FriendsStephan Ewen
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_ValidationMichaelJoshua
 
TechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityTechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityRobb 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.0Bruce Johnson
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysislienhard
 

Ähnlich wie 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
 

Kürzlich hochgeladen

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Kürzlich hochgeladen (20)

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

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