Real‐time performance assessment using fast interrupt request on a standard Linux kernel

Summary This article presents the use of ARM's fast interrupt request (FIQ) to accomplish better jitter performance on real‐time drivers without using patches for real‐time extensions on the native Linux kernel code. Writing an FIQ interrupt handler is challenging due to the lack of Linux kerne...

Full description

Bibliographic Details
Main Authors: Rayanne Souza, Miguel Freitas, Marcelo Jimenez, João Magalhães, Alan C. Kubrusly, Noemi Rodriguez
Format: Article
Language:English
Published: Wiley 2020-01-01
Series:Engineering Reports
Subjects:
Online Access:https://doi.org/10.1002/eng2.12114
id doaj-dbed6370782f4bcd97a6f78f32cf3d00
record_format Article
spelling doaj-dbed6370782f4bcd97a6f78f32cf3d002020-11-24T21:40:54ZengWileyEngineering Reports2577-81962020-01-0121n/an/a10.1002/eng2.12114Real‐time performance assessment using fast interrupt request on a standard Linux kernelRayanne Souza0Miguel Freitas1Marcelo Jimenez2João Magalhães3Alan C. Kubrusly4Noemi Rodriguez5Center for Telecommunication Studies Pontifical Catholic University of Rio de Janeiro Rio de Janeiro BrazilCenter for Telecommunication Studies Pontifical Catholic University of Rio de Janeiro Rio de Janeiro BrazilCenter for Telecommunication Studies Pontifical Catholic University of Rio de Janeiro Rio de Janeiro BrazilCenter for Telecommunication Studies Pontifical Catholic University of Rio de Janeiro Rio de Janeiro BrazilCenter for Telecommunication Studies Pontifical Catholic University of Rio de Janeiro Rio de Janeiro BrazilComputer Science Department Pontifical Catholic University of Rio de Janeiro Rio de Janeiro BrazilSummary This article presents the use of ARM's fast interrupt request (FIQ) to accomplish better jitter performance on real‐time drivers without using patches for real‐time extensions on the native Linux kernel code. Writing an FIQ interrupt handler is challenging due to the lack of Linux kernel support and the need to avoid page faults exception during its execution. We investigate and evaluate a mechanism that employs static mapping for peripherals and changes on the Linux kernel code to allow the FIQ interrupt handler to be written in the C language. Furthermore, the FIQ performance was evaluated by comparing it with a timer Interrupt Request on Linux PREEMPT‐RT in full CONFIG_PREEMPT_RT mode. Both were applied on a Linux driver for data acquisition of a pipeline inspection gauge system. Results show that the FIQ approach was able to reduce in 97.49% the interrupt jitter and, as a result, allowed an increase in the data acquisition frequency from 1024 Hz to 2048 Hz, showing that the FIQ approach can be considered for real‐time applications without resorting to real‐time extensions.https://doi.org/10.1002/eng2.12114embedded softwareFIQ interruptjitterLinux kernelpipeline inspection gaugereal‐time driver
collection DOAJ
language English
format Article
sources DOAJ
author Rayanne Souza
Miguel Freitas
Marcelo Jimenez
João Magalhães
Alan C. Kubrusly
Noemi Rodriguez
spellingShingle Rayanne Souza
Miguel Freitas
Marcelo Jimenez
João Magalhães
Alan C. Kubrusly
Noemi Rodriguez
Real‐time performance assessment using fast interrupt request on a standard Linux kernel
Engineering Reports
embedded software
FIQ interrupt
jitter
Linux kernel
pipeline inspection gauge
real‐time driver
author_facet Rayanne Souza
Miguel Freitas
Marcelo Jimenez
João Magalhães
Alan C. Kubrusly
Noemi Rodriguez
author_sort Rayanne Souza
title Real‐time performance assessment using fast interrupt request on a standard Linux kernel
title_short Real‐time performance assessment using fast interrupt request on a standard Linux kernel
title_full Real‐time performance assessment using fast interrupt request on a standard Linux kernel
title_fullStr Real‐time performance assessment using fast interrupt request on a standard Linux kernel
title_full_unstemmed Real‐time performance assessment using fast interrupt request on a standard Linux kernel
title_sort real‐time performance assessment using fast interrupt request on a standard linux kernel
publisher Wiley
series Engineering Reports
issn 2577-8196
publishDate 2020-01-01
description Summary This article presents the use of ARM's fast interrupt request (FIQ) to accomplish better jitter performance on real‐time drivers without using patches for real‐time extensions on the native Linux kernel code. Writing an FIQ interrupt handler is challenging due to the lack of Linux kernel support and the need to avoid page faults exception during its execution. We investigate and evaluate a mechanism that employs static mapping for peripherals and changes on the Linux kernel code to allow the FIQ interrupt handler to be written in the C language. Furthermore, the FIQ performance was evaluated by comparing it with a timer Interrupt Request on Linux PREEMPT‐RT in full CONFIG_PREEMPT_RT mode. Both were applied on a Linux driver for data acquisition of a pipeline inspection gauge system. Results show that the FIQ approach was able to reduce in 97.49% the interrupt jitter and, as a result, allowed an increase in the data acquisition frequency from 1024 Hz to 2048 Hz, showing that the FIQ approach can be considered for real‐time applications without resorting to real‐time extensions.
topic embedded software
FIQ interrupt
jitter
Linux kernel
pipeline inspection gauge
real‐time driver
url https://doi.org/10.1002/eng2.12114
work_keys_str_mv AT rayannesouza realtimeperformanceassessmentusingfastinterruptrequestonastandardlinuxkernel
AT miguelfreitas realtimeperformanceassessmentusingfastinterruptrequestonastandardlinuxkernel
AT marcelojimenez realtimeperformanceassessmentusingfastinterruptrequestonastandardlinuxkernel
AT joaomagalhaes realtimeperformanceassessmentusingfastinterruptrequestonastandardlinuxkernel
AT alanckubrusly realtimeperformanceassessmentusingfastinterruptrequestonastandardlinuxkernel
AT noemirodriguez realtimeperformanceassessmentusingfastinterruptrequestonastandardlinuxkernel
_version_ 1725924124605284352