Real‐time performance assessment using fast interrupt request on a standard Linux kernel. Issue 1 (20th January 2020) - Souza, Rayanne; Freitas, Miguel; Jimenez, Marcelo; Magalhães, João; Kubrusly, Alan C.; Rodriguez, Noemi
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. Abstract : 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. The FIQ performance was evaluated by comparing it with a timer Interrupt Request (IRQ), both were applied on a Linux driver for data acquisition of a pipeline inspection gauge (PIG) system. Results show that the FIQ approach was able to reduce in 97.49% the interrupt jitter and consequently allowed to increase the data acquisition frequency from 1024 Hz to 2048 Hz, and thus, the FIQ approach can be considered for real‐time application without resorting real‐time extensions.