SlideShare a Scribd company logo
1
How we Test Linux
Dmytro Tokarskyy
2018-06-04
2
Agenda
1. What Linux is for us
2. Frameworks and Tools
3. Kernel Continuous Integration
4. "Leg" Tests
33
What Linux is for us
4
Linux Architecture
Hardware
Desktop Environment Android
System Libraries System Libraries
FS USB Network UART ...
5
Linux Target
6
Platform Diversity
7
How we get Linux
Linux Mainline Source Tree
Board Vendor Linux Source Tree
Customer Linux Source Tree
Target Source TreePorting
8
Expectation from Testing
Improvements / Degradation
Functional Tests Benchmarks
99
Frameworks and Tools
10
Kernel Self Tests
• Started and 2014 by Shuah Khan, Linux Kernel Developer at
Samsung Research America
• Set of tests included to the Linux Kernel source tree
• A set of developer unit and regression tests
• Tests exercise individual code paths in the kernel
• Own test harnesses
• Test results are reported in the TAP13 format
• Links
- tools/testing/selftests/
- https://kselftest.wiki.kernel.org/
- https://lwn.net/Articles/608959/
11
Kernel Self Test Cases
• Function Tracer (ftrace)
• Linux Sockets
• Virtual Memory
• Timers
12
Linux Test Project
• The Linux Test Project is a joint
project started by SGI,
developed and maintained by
IBM, Cisco, Fujitsu, SUSE, Red
Hat and others
• A goal to deliver test suites to
validate the reliability,
robustness, and stability of
Linux.
• The LTP testsuite contains a
collection of tools for testing the
Linux kernel and related
features.
13
Linux Test Project Coverage
• Collection of tools for testing the Linux kernel and related features
- Kernel-related tests such as filesystems, io, ipc, memory management, scheduler,
and system calls
- Network tests including tests for ipv6, multicast, nfs, rpc, sctp, and network related
user commands
- Tests for user level commands commonly used in application development such as
ar, ld, ldd, nm, objdump, and size
- Miscellaneous tests that do not fit into one of the other categories such as crash,
f00f, and a floating point math set of tests
14
Linux Test Project Test Case
• “Classical” structure of tests
- set up
- test themself
- tear down
• Four results of tests
- TPASS - Test has passed
- TFAIL - Test has failed
- TCONF - Test is not appropriate for current configuration
- TBROK - Something has failed in test preparation phase
• Source code
- https://github.com/linux-test-project/ltp
15
LMBench
lmbench is a suite of simple, portable, ANSI/C microbenchmarks for
UNIX/POSIX.
● Bandwidth benchmarks
○ Cached file read
○ Memory copy (bcopy)
○ Memory read
● Latency benchmarks
○ Context switching
○ Process creation
○ Signal handling
○ System call overhead
○ Memory read latency
● Miscellaneous
○ Processor clock rate calculation
1616
Kernel Continuous Integration
17
Jenkins Pipeline
Get Tools
Download
Kernel
Build
Kernel
Pack
Rootfs
Deploy
SelfTest
LTP
LMBench
18
Jenkins Pipeline Configuration
19
Jenkins Pipeline Stage View
20
Test Station Scheme
• Dedicated server runs Jenkins CI
• MRB’s rootfs placed to NFS at
another server
• Jenkins controls MRBs, NFS via
SSH/SCP
• USB controlled 4-channel relay
“presses” an ignition button by CI
command
21
Test Station Scheme
2222
"Leg" Tests
23
Apple CarPlay
24
Kernel Stress Testing: USB Stack
25
Kernel Stress Testing: SATA Interface
26
ALSA Sound
27
Graphics
28
Watchdog
29
Something More...
• Functional Tests
- Bootloader
- UART
- Power Management
- File Systems
- Ethernet
• Benchmarks
- Iperf: maximum achievable
bandwidth on IP networks
- IOZone: file system benchmark
utility
- Glmark2: OpenGL 2.0 and ES
2.0 benchmark

More Related Content

What's hot (20)

PDF
IntelON 2021 Processor Benchmarking
Brendan Gregg
 
PPTX
Introduction to Unix
Nishant Munjal
 
PPTX
Linux Initialization Process (1)
shimosawa
 
PDF
A practical guide to buildroot
Emertxe Information Technologies Pvt Ltd
 
PDF
Linux kernel debugging
libfetion
 
PPTX
Windows process-scheduling
Talha Shaikh
 
PDF
Project meeting: Android Graphics Architecture Overview
Yu-Hsin Hung
 
PPT
Linux Crash Dump Capture and Analysis
Paul V. Novarese
 
PPT
Presentation1 linux os
joycoronado
 
PDF
Making Linux do Hard Real-time
National Cheng Kung University
 
PDF
The Linux Kernel Scheduler (For Beginners) - SFO17-421
Linaro
 
PDF
Physical Memory Models.pdf
Adrian Huang
 
PDF
re:Invent 2019 BPF Performance Analysis at Netflix
Brendan Gregg
 
PDF
spinlock.pdf
Adrian Huang
 
PPT
Basic Linux Internals
mukul bhardwaj
 
PDF
The Linux Kernel Implementation of Pipes and FIFOs
Divye Kapoor
 
PDF
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
PPT
Operating system lecture1
AhalyaSri
 
PDF
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
Adrian Huang
 
IntelON 2021 Processor Benchmarking
Brendan Gregg
 
Introduction to Unix
Nishant Munjal
 
Linux Initialization Process (1)
shimosawa
 
A practical guide to buildroot
Emertxe Information Technologies Pvt Ltd
 
Linux kernel debugging
libfetion
 
Windows process-scheduling
Talha Shaikh
 
Project meeting: Android Graphics Architecture Overview
Yu-Hsin Hung
 
Linux Crash Dump Capture and Analysis
Paul V. Novarese
 
Presentation1 linux os
joycoronado
 
Making Linux do Hard Real-time
National Cheng Kung University
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
Linaro
 
Physical Memory Models.pdf
Adrian Huang
 
re:Invent 2019 BPF Performance Analysis at Netflix
Brendan Gregg
 
spinlock.pdf
Adrian Huang
 
Basic Linux Internals
mukul bhardwaj
 
The Linux Kernel Implementation of Pipes and FIFOs
Divye Kapoor
 
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
Operating system lecture1
AhalyaSri
 
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
Adrian Huang
 

Similar to How We Test Linux (20)

PPTX
Continuous Integration for BSP
Witekio
 
PDF
LDTT : A Low Level Driver Unit Testing Tool
ijseajournal
 
PDF
Brief introduction to kselftest
SeongJae Park
 
PDF
Linux Distribution Automated Testing
Aleksander Baranowski
 
PDF
Linux Kernel Selftest Framework - Quality Control for New Releases
Samsung Open Source Group
 
PDF
Continuous Kernel Integration
Major Hayden
 
PDF
Using open source software to build an industrial grade embedded linux platfo...
SZ Lin
 
PPTX
Design, Build,and Maintain the Embedded Linux Platform
SZ Lin
 
PDF
Linux Kernel - Let's Contribute!
Levente Kurusa
 
PDF
Os Selbak
oscon2007
 
PDF
Embedded Recipes 2019 - Testing firmware the devops way
Anne Nicolas
 
PDF
LCE13: Test and Validation Summit: The future of testing at Linaro
Linaro
 
PDF
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
Linaro
 
PDF
Testing and HW Virtualization (7th White Rabbit Workshop)
Igalia
 
PDF
Linux School: Advanced Administration for IBM Software
Bill Malchisky Jr.
 
PPT
Linux concept workshop
Tahmoures Shabanian
 
PDF
An Introduction To Linux
Ishan A B Ambanwela
 
ZIP
Embedded Linux Odp
ghessler
 
PDF
00000001_Embedded_Linux_RevisionFile.pdf
Diana Atef
 
PDF
Embedded Linux primer
Drew Fustini
 
Continuous Integration for BSP
Witekio
 
LDTT : A Low Level Driver Unit Testing Tool
ijseajournal
 
Brief introduction to kselftest
SeongJae Park
 
Linux Distribution Automated Testing
Aleksander Baranowski
 
Linux Kernel Selftest Framework - Quality Control for New Releases
Samsung Open Source Group
 
Continuous Kernel Integration
Major Hayden
 
Using open source software to build an industrial grade embedded linux platfo...
SZ Lin
 
Design, Build,and Maintain the Embedded Linux Platform
SZ Lin
 
Linux Kernel - Let's Contribute!
Levente Kurusa
 
Os Selbak
oscon2007
 
Embedded Recipes 2019 - Testing firmware the devops way
Anne Nicolas
 
LCE13: Test and Validation Summit: The future of testing at Linaro
Linaro
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
Linaro
 
Testing and HW Virtualization (7th White Rabbit Workshop)
Igalia
 
Linux School: Advanced Administration for IBM Software
Bill Malchisky Jr.
 
Linux concept workshop
Tahmoures Shabanian
 
An Introduction To Linux
Ishan A B Ambanwela
 
Embedded Linux Odp
ghessler
 
00000001_Embedded_Linux_RevisionFile.pdf
Diana Atef
 
Embedded Linux primer
Drew Fustini
 
Ad

More from GlobalLogic Ukraine (20)

PDF
GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic Ukraine
 
PPTX
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
GlobalLogic Ukraine
 
PDF
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
PDF
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Ukraine
 
PDF
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Ukraine
 
PDF
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic Ukraine
 
PPTX
Штучний інтелект як допомога в навчанні, а не замінник.pptx
GlobalLogic Ukraine
 
PPTX
Задачі AI-розробника як застосовується штучний інтелект.pptx
GlobalLogic Ukraine
 
PPTX
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
GlobalLogic Ukraine
 
PDF
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Ukraine
 
PDF
JavaScript Community Webinar #14 "Why Is Git Rebase?"
GlobalLogic Ukraine
 
PDF
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic Ukraine
 
PPTX
Страх і сила помилок - IT Inside від GlobalLogic Education
GlobalLogic Ukraine
 
PDF
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic Ukraine
 
PDF
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic Ukraine
 
PDF
“How to Secure Your Applications With a Keycloak?
GlobalLogic Ukraine
 
PDF
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 
PPTX
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Ukraine
 
PDF
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic Ukraine
 
PDF
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
GlobalLogic Ukraine
 
GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic Ukraine
 
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Ukraine
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic Ukraine
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
GlobalLogic Ukraine
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
GlobalLogic Ukraine
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Ukraine
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
GlobalLogic Ukraine
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic Ukraine
 
Страх і сила помилок - IT Inside від GlobalLogic Education
GlobalLogic Ukraine
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic Ukraine
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic Ukraine
 
“How to Secure Your Applications With a Keycloak?
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Ukraine
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic Ukraine
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
GlobalLogic Ukraine
 
Ad

Recently uploaded (20)

PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 

How We Test Linux

  • 1. 1 How we Test Linux Dmytro Tokarskyy 2018-06-04
  • 2. 2 Agenda 1. What Linux is for us 2. Frameworks and Tools 3. Kernel Continuous Integration 4. "Leg" Tests
  • 4. 4 Linux Architecture Hardware Desktop Environment Android System Libraries System Libraries FS USB Network UART ...
  • 7. 7 How we get Linux Linux Mainline Source Tree Board Vendor Linux Source Tree Customer Linux Source Tree Target Source TreePorting
  • 8. 8 Expectation from Testing Improvements / Degradation Functional Tests Benchmarks
  • 10. 10 Kernel Self Tests • Started and 2014 by Shuah Khan, Linux Kernel Developer at Samsung Research America • Set of tests included to the Linux Kernel source tree • A set of developer unit and regression tests • Tests exercise individual code paths in the kernel • Own test harnesses • Test results are reported in the TAP13 format • Links - tools/testing/selftests/ - https://kselftest.wiki.kernel.org/ - https://lwn.net/Articles/608959/
  • 11. 11 Kernel Self Test Cases • Function Tracer (ftrace) • Linux Sockets • Virtual Memory • Timers
  • 12. 12 Linux Test Project • The Linux Test Project is a joint project started by SGI, developed and maintained by IBM, Cisco, Fujitsu, SUSE, Red Hat and others • A goal to deliver test suites to validate the reliability, robustness, and stability of Linux. • The LTP testsuite contains a collection of tools for testing the Linux kernel and related features.
  • 13. 13 Linux Test Project Coverage • Collection of tools for testing the Linux kernel and related features - Kernel-related tests such as filesystems, io, ipc, memory management, scheduler, and system calls - Network tests including tests for ipv6, multicast, nfs, rpc, sctp, and network related user commands - Tests for user level commands commonly used in application development such as ar, ld, ldd, nm, objdump, and size - Miscellaneous tests that do not fit into one of the other categories such as crash, f00f, and a floating point math set of tests
  • 14. 14 Linux Test Project Test Case • “Classical” structure of tests - set up - test themself - tear down • Four results of tests - TPASS - Test has passed - TFAIL - Test has failed - TCONF - Test is not appropriate for current configuration - TBROK - Something has failed in test preparation phase • Source code - https://github.com/linux-test-project/ltp
  • 15. 15 LMBench lmbench is a suite of simple, portable, ANSI/C microbenchmarks for UNIX/POSIX. ● Bandwidth benchmarks ○ Cached file read ○ Memory copy (bcopy) ○ Memory read ● Latency benchmarks ○ Context switching ○ Process creation ○ Signal handling ○ System call overhead ○ Memory read latency ● Miscellaneous ○ Processor clock rate calculation
  • 20. 20 Test Station Scheme • Dedicated server runs Jenkins CI • MRB’s rootfs placed to NFS at another server • Jenkins controls MRBs, NFS via SSH/SCP • USB controlled 4-channel relay “presses” an ignition button by CI command
  • 25. 25 Kernel Stress Testing: SATA Interface
  • 29. 29 Something More... • Functional Tests - Bootloader - UART - Power Management - File Systems - Ethernet • Benchmarks - Iperf: maximum achievable bandwidth on IP networks - IOZone: file system benchmark utility - Glmark2: OpenGL 2.0 and ES 2.0 benchmark