SlideShare uma empresa Scribd logo
1 de 43
How to Measure
   RTOS Performance

                               Colin Walls
                  colin_walls@mentor.com

with acknowledgement to Faheem Sheikh & Dan Driscoll




                           mentor.com/embedded
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
Introduction – Why?




 Desktop computers         Embedded systems
    – Infinite CPU power      – Enough CPU power – just
    – Infinite memory         – Adequate memory – none to spare
    – Costs nothing           – Power consumption an issue
                              – Cost normally critical
Introduction – Choosing an RTOS
RTOS solutions
  – Proprietary [in-house; home brew]
  – Commercial
     –   At least 200 product available
  – Open source
Asking the right questions is important
Understanding the answers is critical
  – Pitfalls with misinterpretation
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
RTOS Metrics
Three common categories:
  – Memory footprint
     –   Program and data
  – Latency
     –   Interrupt and scheduling
  – Services performance
No real standardization
  – Embedded Microprocessor Benchmark Consortium
    (EEMBC) not widely adopted
     –   Oriented towards CPU benchmarking
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
Memory Footprint
RAM and ROM requirements of RTOS
  – On a specific platform


 ROM size:                   RAM size:
  – Kernel code                – Kernel data structures
  – Read-only data             – Global variables
  – Runtime library code       – May need
  – Maybe in flash;              accommodate “ROM”
    possibly copied to
    RAM
Memory Footprint – Dependencies
Key factors affect the footprint calculation


CPU architecture
   – Huge effect on number of instructions
Software configuration
   – Which kernel components are included
   – Scalability ...
Compiler optimization
   – Reduces code size, but may adversely affect performance
Memory Footprint – Scalability

    RTOS            Application     Memory
   Service #1    …
                 rtos_call_1();
   Service #2
                 …
                 rtos_call_3();     Application
   Service #3
                 …                    Code
   Service #4    rtos_call_157();
                 …


                                      RTOS
  Service #271
                                       core
                                     Service #1

                                     Service #3

                                    Service #157
Memory Footprint – Measurement
Making measurement need not be difficult
Two key methods:
  – Memory MAP file
     –   Generated by standard linkers
     –   Quality and detail varies between tools
  – Specific tool
     –   Shows footprint information for selected executable image
     –   Example: objdump
Memory Footprint – Importance
Limited memory availability
  – Small on-chip memory
  – No external memory option
  – Application code is priority
Larger systems
  – Kernel performance a priority
  – Place in on-chip memory
  – Lock into cache
Using a bootloader
  – Non-volatile memory and RAM space used
Memory Footprint – Pitfalls
Vendor data can be readily misinterpreted

Look at minimum configuration definition
  – It may be a tiny, impractical subset
Runtime library functions are often not included
RAM/ROM sizes should have a min/max range
  – RAM is likely to be application dependent
  – ROM driven by kernel configuration
     – Need minimum “useable” size
     – Also maximum measure with all services

  – Scalability variable – may be different kernel versions
Memory Footprint – Example
Nucleus RTOS kernel is fully scalable
Example: ARM Cortex A8 in ARM mode
Built with Mentor Sourcery CodeBench toolchain
Full optimization for size


ROM = 12-30 Kbytes
RAM = 500 bytes
Memory Footprint – Example
Min has essential kernel services [dynamic memory,
 threads, semaphores, events, queues]
  – Runtime library excluded
Max includes all kernel services


Compiling for Thumb-2 mode reduces ROM by 35%
  – So Nucleus kernel can use 7.8 Kbytes on a Cortex-M
    based controller
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
Interrupt Latency




         Definitions of interrupt latency
Interrupt Latency – Definition
Different definitions


System: Time between interrupt assertion and the
 instant an observable response happens
OS: Duration of when the CPU was interrupted until
 the start of the corresponding interrupt service
 routine (ISR)
   – This is really OS overhead
   – Many vendors refer to this as the latency
   – Hence often report zero latency
Interrupt Latency – Measurement
Interrupt response is the sum of two distinct times:

                             ƮIL = ƮH + ƮOS

where:
   ƮH is the hardware dependent time
      –   depends on the interrupt controller on the board as well as the type
          of the interrupt
   ƮOS is the OS induced overhead
      –   Best and worst case scenarios
      –   Worst when kernel disables interrupts
Interrupt Latency – Measurement
Best approach is to record time between interrupts
 source and response
  – Use an oscilloscope
  – For example:
     –   One GPIO pin can generate an interrupt
     –   Another pin toggled at the start of the ISR
Interrupt Latency – Importance
Specific types of designs rely on this metric:
   – Time critical
   – Fault tolerant
If high I/O bandwidth is needed, measure the latency of
   a particular interrupt
Most systems can tolerate interrupt latency of tens of
 microseconds
Interrupt Latency – Pitfalls
Main danger is interpretation of published figures


Key factors to check:

Hardware configuration           OS configuration
  – Which platform?                – Where is code running
  – CPU speed?                       from? [Flash, SDRAM ...]
  – Cache configuration?           – Which interrupt used?
  – Timer frequency?               – Code optimized for speed?
  – Interrupt controller type?     – Is metric best or average
                                     case?
Interrupt Latency – Example
Nucleus RTOS
  – ARM Cortex A8
  – 600MHz
  – Running from SRAM
Average interrupt latency of less than 0.5
 microseconds
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
Scheduling Latency – Definition
Performance of RTOS thread scheduler
Very wide variation in measurement technique and
 interpretation
Two distinct related quantities:
   – Context switch time
   – Scheduling overhead
Scheduling Latency – Definition
Context switch time
Scheduling Latency – Definition
Scheduling overhead
Scheduling Latency – Measurement
Scheduling latency is the maximum of two times:

                       ƮSL = MAX(ƮSO, ƮCS)



where:
  ƮSO is the scheduling overhead
     –   End of ISR to start of task schedule
  ƮCS is the time taken to save and restore thread context
Scheduling Latency – Importance
Most systems that have stringent interrupt latency
 demands also need low scheduling latency
Broadly, systems that are:
  – Time critical
  – Fault tolerant
Scheduling Latency – Pitfalls
Ignoring initial system state
   – If system is idle, there is no time taken saving context


Key factors to check:
Hardware configuration             OS configuration
   – Which platform?                  – Where is code running
   – CPU speed?                         from? [Flash, SDRAM ...]
   – Cache configuration?             – Which interrupt used?
   – Timer frequency?                 – Code optimized for speed?
   – Interrupt controller type?       – Is metric best or average
                                        case?
Scheduling Latency – Example
Nucleus RTOS
  – ARM Cortex A8
  – 600MHz
  – Running from SRAM
Scheduling latency is 1.3 microseconds
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
Timing Kernel Services
RTOS may have a great many API calls
Timing of keys ones may be of interest
  – Focus on frequently used API calls
Four key categories:
  – Threading services
  – Synchronization services
  – Inter-process communication services
  – Memory services
Timing Kernel Services
Threading Services
  – Control of fundamental kernel functionality:
     –   Create thread
     –   Start thread
     –   Resume thread
     –   Stop thread
  – Many multi-taking applications make heavy use of these
    calls
Timing Kernel Services
Synchronization Services
  – Services to synchronize between contexts, like an ISR and
    a thread
  – Also protection of critical code sections from concurrent
    access
     –   e.g. Semaphore may be used by Ethernet ISR to write data into
         shared memory that is also used by a task
  – Timing is important is the application has numerous shared
    resources or peripherals
Timing Kernel Services
Inter-process Communication Services
  – Services to share data between multiple threads
  – Examples:
     –   FIFOs
     –   Queues
     –   Mailboxes
     –   Event flags
  – Many multi-taking applications make heavy use of this type
    of service
Timing Kernel Services
Memory Services
  – In a multi-threaded context, kernel is used to manage
    dynamic memory
  – Allocation and de-allocation times are important
     –   Applications with large data throughput are particularly sensitive
Timing Kernel Services – Pitfalls
Hardware configuration
  – Which platform?
  – CPU speed?
  – Cache configuration?
OS configuration
  – Where is code running from? [Flash, SDRAM ...]
  – Code optimized for speed?
  – Is metric best or average case?
  – Is kernel configured for reduced error checking?
Timing Kernel Services – Example

      Nucleus RTOS Kernel Service   Time in µS
      Task resumption                  0.3
      Task suspension                  0.3
      Obtaining a semaphore            0.5
      Set an event                     0.4
      Send message to queue            0.9
      Allocate memory                  0.2
      De-allocate memory               0.7
      Allocate partition               0.4
Agenda
Introduction
RTOS Metrics
Memory Footprint
Interrupt Latency
Scheduling Latency
Timing Kernel Services
Conclusions
Conclusions
RTOS performance data provided by vendors can be
 useful
It can also be misleading if it is misinterpreted
Need a thorough understanding of:
   – Measurement techniques
   – Terminology
   – Trade-offs
      to conduct fair comparison
Recommendation is to rely on holistic or application-
 oriented measurements
Thank you

                         Colin Walls
              colin_walls@mentor.com
   http://blogs.mentor.com/colinwalls



                              See white paper:
"Measuring RTOS Performance: What? Why? How?"

                      mentor.com/embedded

Mais conteúdo relacionado

Mais procurados

System On Chip (SOC)
System On Chip (SOC)System On Chip (SOC)
System On Chip (SOC)
Shivam Gupta
 
Real Time OS For Embedded Systems
Real Time OS For Embedded SystemsReal Time OS For Embedded Systems
Real Time OS For Embedded Systems
Himanshu Ghetia
 
REAL TIME OPERATING SYSTEM
REAL TIME OPERATING SYSTEMREAL TIME OPERATING SYSTEM
REAL TIME OPERATING SYSTEM
prakrutijsh
 
Real time operating-systems
Real time operating-systemsReal time operating-systems
Real time operating-systems
kasi963
 

Mais procurados (20)

System On Chip (SOC)
System On Chip (SOC)System On Chip (SOC)
System On Chip (SOC)
 
Processors used in System on chip
Processors used in System on chip Processors used in System on chip
Processors used in System on chip
 
Unit 1 Introduction to Embedded computing and ARM processor
Unit 1 Introduction to Embedded computing and ARM processorUnit 1 Introduction to Embedded computing and ARM processor
Unit 1 Introduction to Embedded computing and ARM processor
 
Real Time OS For Embedded Systems
Real Time OS For Embedded SystemsReal Time OS For Embedded Systems
Real Time OS For Embedded Systems
 
Introduction to embedded system design
Introduction to embedded system designIntroduction to embedded system design
Introduction to embedded system design
 
Communication Protocols (UART, SPI,I2C)
Communication Protocols (UART, SPI,I2C)Communication Protocols (UART, SPI,I2C)
Communication Protocols (UART, SPI,I2C)
 
REAL TIME OPERATING SYSTEM
REAL TIME OPERATING SYSTEMREAL TIME OPERATING SYSTEM
REAL TIME OPERATING SYSTEM
 
Vxworks
VxworksVxworks
Vxworks
 
RTOS - Real Time Operating Systems
RTOS - Real Time Operating SystemsRTOS - Real Time Operating Systems
RTOS - Real Time Operating Systems
 
SoC Design
SoC DesignSoC Design
SoC Design
 
SOC design
SOC design SOC design
SOC design
 
Verification engineer performance appraisal
Verification engineer performance appraisalVerification engineer performance appraisal
Verification engineer performance appraisal
 
Introduction to AVR Microcontroller
Introduction to AVR Microcontroller Introduction to AVR Microcontroller
Introduction to AVR Microcontroller
 
CPU Verification
CPU VerificationCPU Verification
CPU Verification
 
Real time operating-systems
Real time operating-systemsReal time operating-systems
Real time operating-systems
 
cplds
cpldscplds
cplds
 
RTOS- Real Time Operating Systems
RTOS- Real Time Operating Systems RTOS- Real Time Operating Systems
RTOS- Real Time Operating Systems
 
Real Time Operating Systems
Real Time Operating SystemsReal Time Operating Systems
Real Time Operating Systems
 
REAL TIME OPERATING SYSTEM PART 1
REAL TIME OPERATING SYSTEM PART 1REAL TIME OPERATING SYSTEM PART 1
REAL TIME OPERATING SYSTEM PART 1
 
Vx works RTOS
Vx works RTOSVx works RTOS
Vx works RTOS
 

Destaque

FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
quakke
 
Actuators er.sanyam s. saini (me regular)
Actuators er.sanyam s. saini  (me regular)Actuators er.sanyam s. saini  (me regular)
Actuators er.sanyam s. saini (me regular)
Sanyam Singh
 
Sensors and actuators
Sensors and actuatorsSensors and actuators
Sensors and actuators
nazibhmd
 
Image segmentation ppt
Image segmentation pptImage segmentation ppt
Image segmentation ppt
Gichelle Amon
 

Destaque (20)

INTERRUPT ROUTINES IN RTOS EN VIRONMENT HANDELING OF INTERRUPT SOURCE CALLS
INTERRUPT ROUTINES IN RTOS EN VIRONMENT HANDELING OF INTERRUPT SOURCE CALLSINTERRUPT ROUTINES IN RTOS EN VIRONMENT HANDELING OF INTERRUPT SOURCE CALLS
INTERRUPT ROUTINES IN RTOS EN VIRONMENT HANDELING OF INTERRUPT SOURCE CALLS
 
FreeRTOS Course - Queue Management
FreeRTOS Course - Queue ManagementFreeRTOS Course - Queue Management
FreeRTOS Course - Queue Management
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
 
Free FreeRTOS Course-Task Management
Free FreeRTOS Course-Task ManagementFree FreeRTOS Course-Task Management
Free FreeRTOS Course-Task Management
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminar
 
Representation image
Representation imageRepresentation image
Representation image
 
Rtos ameba
Rtos amebaRtos ameba
Rtos ameba
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
 
comparision of lossy and lossless image compression using various algorithm
comparision of lossy and lossless image compression using various algorithmcomparision of lossy and lossless image compression using various algorithm
comparision of lossy and lossless image compression using various algorithm
 
Introduction to Embedded Systems a Practical Approach
Introduction to Embedded Systems a Practical ApproachIntroduction to Embedded Systems a Practical Approach
Introduction to Embedded Systems a Practical Approach
 
Actuators er.sanyam s. saini (me regular)
Actuators er.sanyam s. saini  (me regular)Actuators er.sanyam s. saini  (me regular)
Actuators er.sanyam s. saini (me regular)
 
Dip Image Segmentation
Dip Image SegmentationDip Image Segmentation
Dip Image Segmentation
 
Image compression
Image compressionImage compression
Image compression
 
Sensors & Actuators
Sensors & Actuators Sensors & Actuators
Sensors & Actuators
 
IMAGE SEGMENTATION.
IMAGE SEGMENTATION.IMAGE SEGMENTATION.
IMAGE SEGMENTATION.
 
Sensors and actuators
Sensors and actuatorsSensors and actuators
Sensors and actuators
 
Image segmentation ppt
Image segmentation pptImage segmentation ppt
Image segmentation ppt
 
Actuators.ppt
Actuators.pptActuators.ppt
Actuators.ppt
 
Introduction to C Programming
Introduction to C ProgrammingIntroduction to C Programming
Introduction to C Programming
 
image compression ppt
image compression pptimage compression ppt
image compression ppt
 

Semelhante a How to Measure RTOS Performance

Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .pptReal-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
lematadese670
 
SECURITY SOFTWARE RESOLIUTIONS (SSR) .docx
SECURITY SOFTWARE RESOLIUTIONS (SSR)                              .docxSECURITY SOFTWARE RESOLIUTIONS (SSR)                              .docx
SECURITY SOFTWARE RESOLIUTIONS (SSR) .docx
bagotjesusa
 
Hyper Threading Technology
Hyper Threading TechnologyHyper Threading Technology
Hyper Threading Technology
nayakslideshare
 

Semelhante a How to Measure RTOS Performance (20)

2 colin walls - how to measure rtos performance
2    colin walls - how to measure rtos performance2    colin walls - how to measure rtos performance
2 colin walls - how to measure rtos performance
 
Introduction to embedded System.pptx
Introduction to embedded System.pptxIntroduction to embedded System.pptx
Introduction to embedded System.pptx
 
Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.
Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.
Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.
 
Lecture10_RealTimeOperatingSystems.pptx
Lecture10_RealTimeOperatingSystems.pptxLecture10_RealTimeOperatingSystems.pptx
Lecture10_RealTimeOperatingSystems.pptx
 
OpenPOWER Webinar
OpenPOWER Webinar OpenPOWER Webinar
OpenPOWER Webinar
 
Intro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication ProtocolsIntro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication Protocols
 
Unit 1 processormemoryorganisation
Unit 1 processormemoryorganisationUnit 1 processormemoryorganisation
Unit 1 processormemoryorganisation
 
Unit 2 processor&memory-organisation
Unit 2 processor&memory-organisationUnit 2 processor&memory-organisation
Unit 2 processor&memory-organisation
 
Rtos 2
Rtos 2Rtos 2
Rtos 2
 
Ec8791 unit 5 processes and operating systems
Ec8791 unit 5 processes and operating systemsEc8791 unit 5 processes and operating systems
Ec8791 unit 5 processes and operating systems
 
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .pptReal-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
 
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
 
MCI-Unit_1.PPTX electronics communication Engineering
MCI-Unit_1.PPTX electronics communication EngineeringMCI-Unit_1.PPTX electronics communication Engineering
MCI-Unit_1.PPTX electronics communication Engineering
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
 
Embedded systems-unit-1
Embedded systems-unit-1Embedded systems-unit-1
Embedded systems-unit-1
 
SECURITY SOFTWARE RESOLIUTIONS (SSR) .docx
SECURITY SOFTWARE RESOLIUTIONS (SSR)                              .docxSECURITY SOFTWARE RESOLIUTIONS (SSR)                              .docx
SECURITY SOFTWARE RESOLIUTIONS (SSR) .docx
 
esunit1.pptx
esunit1.pptxesunit1.pptx
esunit1.pptx
 
Autosar Basics hand book_v1
Autosar Basics  hand book_v1Autosar Basics  hand book_v1
Autosar Basics hand book_v1
 
Hyper Threading Technology
Hyper Threading TechnologyHyper Threading Technology
Hyper Threading Technology
 
Basics of embedded system design
Basics of embedded system designBasics of embedded system design
Basics of embedded system design
 

Mais de mentoresd

Mais de mentoresd (9)

Getting Your Medical Device FDA Approved
Getting Your Medical Device FDA ApprovedGetting Your Medical Device FDA Approved
Getting Your Medical Device FDA Approved
 
Security for io t apr 29th mentor embedded hangout
Security for io t apr 29th mentor embedded hangoutSecurity for io t apr 29th mentor embedded hangout
Security for io t apr 29th mentor embedded hangout
 
Internet of Things Connectivity for Embedded Devices
Internet of Things Connectivity for Embedded DevicesInternet of Things Connectivity for Embedded Devices
Internet of Things Connectivity for Embedded Devices
 
Technology, Business and Regulation of the Connected Car
Technology, Business and Regulation of the Connected CarTechnology, Business and Regulation of the Connected Car
Technology, Business and Regulation of the Connected Car
 
Meeting SEP 2.0 Compliance: Developing Power Aware Embedded Systems for the M...
Meeting SEP 2.0 Compliance: Developing Power Aware Embedded Systems for the M...Meeting SEP 2.0 Compliance: Developing Power Aware Embedded Systems for the M...
Meeting SEP 2.0 Compliance: Developing Power Aware Embedded Systems for the M...
 
Profiling Multicore Systems to Maximize Core Utilization
Profiling Multicore Systems to Maximize Core Utilization Profiling Multicore Systems to Maximize Core Utilization
Profiling Multicore Systems to Maximize Core Utilization
 
Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs
 
Simultaneously Leveraging Linux and Android in a GENIVI compliant IVI System
Simultaneously Leveraging Linux and Android in a GENIVI compliant IVI System Simultaneously Leveraging Linux and Android in a GENIVI compliant IVI System
Simultaneously Leveraging Linux and Android in a GENIVI compliant IVI System
 
Power Management in Embedded Systems
Power Management in Embedded Systems Power Management in Embedded Systems
Power Management in Embedded Systems
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

How to Measure RTOS Performance

  • 1. How to Measure RTOS Performance Colin Walls colin_walls@mentor.com with acknowledgement to Faheem Sheikh & Dan Driscoll mentor.com/embedded
  • 2. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 3. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 4. Introduction – Why? Desktop computers Embedded systems – Infinite CPU power – Enough CPU power – just – Infinite memory – Adequate memory – none to spare – Costs nothing – Power consumption an issue – Cost normally critical
  • 5. Introduction – Choosing an RTOS RTOS solutions – Proprietary [in-house; home brew] – Commercial – At least 200 product available – Open source Asking the right questions is important Understanding the answers is critical – Pitfalls with misinterpretation
  • 6. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 7. RTOS Metrics Three common categories: – Memory footprint – Program and data – Latency – Interrupt and scheduling – Services performance No real standardization – Embedded Microprocessor Benchmark Consortium (EEMBC) not widely adopted – Oriented towards CPU benchmarking
  • 8. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 9. Memory Footprint RAM and ROM requirements of RTOS – On a specific platform  ROM size:  RAM size: – Kernel code – Kernel data structures – Read-only data – Global variables – Runtime library code – May need – Maybe in flash; accommodate “ROM” possibly copied to RAM
  • 10. Memory Footprint – Dependencies Key factors affect the footprint calculation CPU architecture – Huge effect on number of instructions Software configuration – Which kernel components are included – Scalability ... Compiler optimization – Reduces code size, but may adversely affect performance
  • 11. Memory Footprint – Scalability RTOS Application Memory Service #1 … rtos_call_1(); Service #2 … rtos_call_3(); Application Service #3 … Code Service #4 rtos_call_157(); … RTOS Service #271 core Service #1 Service #3 Service #157
  • 12. Memory Footprint – Measurement Making measurement need not be difficult Two key methods: – Memory MAP file – Generated by standard linkers – Quality and detail varies between tools – Specific tool – Shows footprint information for selected executable image – Example: objdump
  • 13. Memory Footprint – Importance Limited memory availability – Small on-chip memory – No external memory option – Application code is priority Larger systems – Kernel performance a priority – Place in on-chip memory – Lock into cache Using a bootloader – Non-volatile memory and RAM space used
  • 14. Memory Footprint – Pitfalls Vendor data can be readily misinterpreted Look at minimum configuration definition – It may be a tiny, impractical subset Runtime library functions are often not included RAM/ROM sizes should have a min/max range – RAM is likely to be application dependent – ROM driven by kernel configuration – Need minimum “useable” size – Also maximum measure with all services – Scalability variable – may be different kernel versions
  • 15. Memory Footprint – Example Nucleus RTOS kernel is fully scalable Example: ARM Cortex A8 in ARM mode Built with Mentor Sourcery CodeBench toolchain Full optimization for size ROM = 12-30 Kbytes RAM = 500 bytes
  • 16. Memory Footprint – Example Min has essential kernel services [dynamic memory, threads, semaphores, events, queues] – Runtime library excluded Max includes all kernel services Compiling for Thumb-2 mode reduces ROM by 35% – So Nucleus kernel can use 7.8 Kbytes on a Cortex-M based controller
  • 17. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 18. Interrupt Latency Definitions of interrupt latency
  • 19. Interrupt Latency – Definition Different definitions System: Time between interrupt assertion and the instant an observable response happens OS: Duration of when the CPU was interrupted until the start of the corresponding interrupt service routine (ISR) – This is really OS overhead – Many vendors refer to this as the latency – Hence often report zero latency
  • 20. Interrupt Latency – Measurement Interrupt response is the sum of two distinct times: ƮIL = ƮH + ƮOS where: ƮH is the hardware dependent time – depends on the interrupt controller on the board as well as the type of the interrupt ƮOS is the OS induced overhead – Best and worst case scenarios – Worst when kernel disables interrupts
  • 21. Interrupt Latency – Measurement Best approach is to record time between interrupts source and response – Use an oscilloscope – For example: – One GPIO pin can generate an interrupt – Another pin toggled at the start of the ISR
  • 22. Interrupt Latency – Importance Specific types of designs rely on this metric: – Time critical – Fault tolerant If high I/O bandwidth is needed, measure the latency of a particular interrupt Most systems can tolerate interrupt latency of tens of microseconds
  • 23. Interrupt Latency – Pitfalls Main danger is interpretation of published figures Key factors to check: Hardware configuration OS configuration – Which platform? – Where is code running – CPU speed? from? [Flash, SDRAM ...] – Cache configuration? – Which interrupt used? – Timer frequency? – Code optimized for speed? – Interrupt controller type? – Is metric best or average case?
  • 24. Interrupt Latency – Example Nucleus RTOS – ARM Cortex A8 – 600MHz – Running from SRAM Average interrupt latency of less than 0.5 microseconds
  • 25. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 26. Scheduling Latency – Definition Performance of RTOS thread scheduler Very wide variation in measurement technique and interpretation Two distinct related quantities: – Context switch time – Scheduling overhead
  • 27. Scheduling Latency – Definition Context switch time
  • 28. Scheduling Latency – Definition Scheduling overhead
  • 29. Scheduling Latency – Measurement Scheduling latency is the maximum of two times: ƮSL = MAX(ƮSO, ƮCS) where: ƮSO is the scheduling overhead – End of ISR to start of task schedule ƮCS is the time taken to save and restore thread context
  • 30. Scheduling Latency – Importance Most systems that have stringent interrupt latency demands also need low scheduling latency Broadly, systems that are: – Time critical – Fault tolerant
  • 31. Scheduling Latency – Pitfalls Ignoring initial system state – If system is idle, there is no time taken saving context Key factors to check: Hardware configuration OS configuration – Which platform? – Where is code running – CPU speed? from? [Flash, SDRAM ...] – Cache configuration? – Which interrupt used? – Timer frequency? – Code optimized for speed? – Interrupt controller type? – Is metric best or average case?
  • 32. Scheduling Latency – Example Nucleus RTOS – ARM Cortex A8 – 600MHz – Running from SRAM Scheduling latency is 1.3 microseconds
  • 33. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 34. Timing Kernel Services RTOS may have a great many API calls Timing of keys ones may be of interest – Focus on frequently used API calls Four key categories: – Threading services – Synchronization services – Inter-process communication services – Memory services
  • 35. Timing Kernel Services Threading Services – Control of fundamental kernel functionality: – Create thread – Start thread – Resume thread – Stop thread – Many multi-taking applications make heavy use of these calls
  • 36. Timing Kernel Services Synchronization Services – Services to synchronize between contexts, like an ISR and a thread – Also protection of critical code sections from concurrent access – e.g. Semaphore may be used by Ethernet ISR to write data into shared memory that is also used by a task – Timing is important is the application has numerous shared resources or peripherals
  • 37. Timing Kernel Services Inter-process Communication Services – Services to share data between multiple threads – Examples: – FIFOs – Queues – Mailboxes – Event flags – Many multi-taking applications make heavy use of this type of service
  • 38. Timing Kernel Services Memory Services – In a multi-threaded context, kernel is used to manage dynamic memory – Allocation and de-allocation times are important – Applications with large data throughput are particularly sensitive
  • 39. Timing Kernel Services – Pitfalls Hardware configuration – Which platform? – CPU speed? – Cache configuration? OS configuration – Where is code running from? [Flash, SDRAM ...] – Code optimized for speed? – Is metric best or average case? – Is kernel configured for reduced error checking?
  • 40. Timing Kernel Services – Example Nucleus RTOS Kernel Service Time in µS Task resumption 0.3 Task suspension 0.3 Obtaining a semaphore 0.5 Set an event 0.4 Send message to queue 0.9 Allocate memory 0.2 De-allocate memory 0.7 Allocate partition 0.4
  • 41. Agenda Introduction RTOS Metrics Memory Footprint Interrupt Latency Scheduling Latency Timing Kernel Services Conclusions
  • 42. Conclusions RTOS performance data provided by vendors can be useful It can also be misleading if it is misinterpreted Need a thorough understanding of: – Measurement techniques – Terminology – Trade-offs to conduct fair comparison Recommendation is to rely on holistic or application- oriented measurements
  • 43. Thank you Colin Walls colin_walls@mentor.com http://blogs.mentor.com/colinwalls See white paper: "Measuring RTOS Performance: What? Why? How?" mentor.com/embedded