[bootlin/training-materials updates] master: Kernel slides: add NAPI as an example usage of softirqs (aeeeca81)
Michael Opdenacker
michael.opdenacker at bootlin.com
Wed Sep 4 17:54:51 CEST 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/aeeeca81d1bb5ae6bb81a70240e6e79a80913fd3
>---------------------------------------------------------------
commit aeeeca81d1bb5ae6bb81a70240e6e79a80913fd3
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Wed Sep 4 17:54:51 2019 +0200
Kernel slides: add NAPI as an example usage of softirqs
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
aeeeca81d1bb5ae6bb81a70240e6e79a80913fd3
.../kernel-driver-development-interrupts.tex | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
index 2e22bea9..175be1f8 100644
--- a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
+++ b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
@@ -217,6 +217,26 @@ int devm_request_threaded_irq(
\end{itemize}
\end{frame}
+\begin{frame}
+ \frametitle{Example usage of softirqs - NAPI}
+ NAPI = {\em New API}
+ \begin{itemize}
+ \item Interface in the Linux kernel used for interrupt mitigation in
+ network drivers
+ \item Principe: when the network traffic exceeds a given threshhold
+ ("budget"), disable network interrupts and consume incoming packets
+ through a polling function, instead of processing each new
+ packet with an interrupt.
+ \item This reduces overhead due to interrupts and yields better
+ network throughput.
+ \item The polling function is run by \kfunc{napi_schedule}, which uses
+ \ksym{NET_RX_SOFTIRQ}.
+ \item See \url{https://en.wikipedia.org/wiki/New_API} for details
+ \item See also our commented network driver on \url{https://frama.link/qCaWu1-U}
+ \end{itemize}
+
+\end{frame}
+
\begin{frame}
\frametitle{Tasklets}
\begin{itemize}
More information about the training-materials-updates
mailing list