[FE training-materials-updates] Misc RT slide updates and improvements

Michael Opdenacker michael.opdenacker at free-electrons.com
Sun Nov 8 16:25:23 CET 2015


Repository : git://git.free-electrons.com/training-materials.git
On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=5eee1abffaef725aa31af95e46aaa4276002d499

>---------------------------------------------------------------

commit 5eee1abffaef725aa31af95e46aaa4276002d499
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Sun Nov 8 16:25:23 2015 +0100

    Misc RT slide updates and improvements
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


>---------------------------------------------------------------

5eee1abffaef725aa31af95e46aaa4276002d499
 ...rity-inversion.dia => priority-inheritance.dia} | 196 ++++++++++-----------
 slides/sysdev-realtime/sysdev-realtime.tex         |  18 +-
 2 files changed, 96 insertions(+), 118 deletions(-)

diff --git a/slides/sysdev-realtime/priority-inversion.dia b/slides/sysdev-realtime/priority-inheritance.dia
similarity index 82%
copy from slides/sysdev-realtime/priority-inversion.dia
copy to slides/sysdev-realtime/priority-inheritance.dia
index f4d2170..3987b9a 100644
--- a/slides/sysdev-realtime/priority-inversion.dia
+++ b/slides/sysdev-realtime/priority-inheritance.dia
@@ -145,7 +145,7 @@
         <dia:point val="21,8"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="21,7.405;23.2775,8.1525"/>
+        <dia:rectangle val="21,7.26;22.965,8.2"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -178,7 +178,7 @@
         <dia:point val="39.5,17.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="39.5,16.905;41.065,17.6525"/>
+        <dia:rectangle val="39.5,16.76;40.88,17.7"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -211,7 +211,7 @@
         <dia:point val="26.75,15.075"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="24.815,14.655;26.75,15.7469"/>
+        <dia:rectangle val="25.1625,14.5525;26.75,15.7794"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -245,13 +245,13 @@ lock A#</dia:string>
         <dia:point val="27,10"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="26.95,9.95;31.55,11.55"/>
+        <dia:rectangle val="26.95,9.95;31.0125,11.55"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
         <dia:point val="27,10"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="4.5"/>
+        <dia:real val="3.9624999999999986"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
         <dia:real val="1.5"/>
@@ -271,16 +271,16 @@ lock A#</dia:string>
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O7">
       <dia:attribute name="obj_pos">
-        <dia:point val="31.5,14.5"/>
+        <dia:point val="31.0625,10"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="31.45,14.45;35.55,16.05"/>
+        <dia:rectangle val="31.0125,9.95;36.7125,11.55"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="31.5,14.5"/>
+        <dia:point val="31.0625,10"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="4"/>
+        <dia:real val="5.5999999999999943"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
         <dia:real val="1.5"/>
@@ -298,36 +298,7 @@ lock A#</dia:string>
         <dia:boolean val="true"/>
       </dia:attribute>
     </dia:object>
-    <dia:object type="Standard - Box" version="0" id="O8">
-      <dia:attribute name="obj_pos">
-        <dia:point val="35.5,11.5"/>
-      </dia:attribute>
-      <dia:attribute name="obj_bb">
-        <dia:rectangle val="35.45,11.45;40.05,13.05"/>
-      </dia:attribute>
-      <dia:attribute name="elem_corner">
-        <dia:point val="35.5,11.5"/>
-      </dia:attribute>
-      <dia:attribute name="elem_width">
-        <dia:real val="4.5"/>
-      </dia:attribute>
-      <dia:attribute name="elem_height">
-        <dia:real val="1.5"/>
-      </dia:attribute>
-      <dia:attribute name="border_width">
-        <dia:real val="0.10000000149011612"/>
-      </dia:attribute>
-      <dia:attribute name="border_color">
-        <dia:color val="#cc1f1a"/>
-      </dia:attribute>
-      <dia:attribute name="inner_color">
-        <dia:color val="#ffacac"/>
-      </dia:attribute>
-      <dia:attribute name="show_background">
-        <dia:boolean val="true"/>
-      </dia:attribute>
-    </dia:object>
-    <dia:object type="Standard - Line" version="0" id="O9">
+    <dia:object type="Standard - Line" version="0" id="O8">
       <dia:attribute name="obj_pos">
         <dia:point val="27,14.5"/>
       </dia:attribute>
@@ -355,74 +326,54 @@ lock A#</dia:string>
         <dia:connection handle="1" to="O6" connection="5"/>
       </dia:connections>
     </dia:object>
-    <dia:object type="Standard - Line" version="0" id="O10">
+    <dia:object type="Standard - Text" version="1" id="O9">
       <dia:attribute name="obj_pos">
-        <dia:point val="31.5,11.5"/>
+        <dia:point val="30.425,10.6"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="31.1382,11.45;31.8618,14.6118"/>
-      </dia:attribute>
-      <dia:attribute name="conn_endpoints">
-        <dia:point val="31.5,11.5"/>
-        <dia:point val="31.5,14.5"/>
+        <dia:rectangle val="27.715,10.0775;30.425,11.3044"/>
       </dia:attribute>
-      <dia:attribute name="numcp">
-        <dia:int val="1"/>
-      </dia:attribute>
-      <dia:attribute name="end_arrow">
-        <dia:enum val="22"/>
-      </dia:attribute>
-      <dia:attribute name="end_arrow_length">
-        <dia:real val="0.5"/>
-      </dia:attribute>
-      <dia:attribute name="end_arrow_width">
-        <dia:real val="0.5"/>
-      </dia:attribute>
-      <dia:connections>
-        <dia:connection handle="0" to="O6" connection="7"/>
-        <dia:connection handle="1" to="O7" connection="0"/>
-      </dia:connections>
-    </dia:object>
-    <dia:object type="Standard - Line" version="0" id="O11">
-      <dia:attribute name="obj_pos">
-        <dia:point val="35.5,14.5"/>
-      </dia:attribute>
-      <dia:attribute name="obj_bb">
-        <dia:rectangle val="35.1382,12.8882;35.8618,14.55"/>
-      </dia:attribute>
-      <dia:attribute name="conn_endpoints">
-        <dia:point val="35.5,14.5"/>
-        <dia:point val="35.5,13"/>
-      </dia:attribute>
-      <dia:attribute name="numcp">
-        <dia:int val="1"/>
-      </dia:attribute>
-      <dia:attribute name="end_arrow">
-        <dia:enum val="22"/>
-      </dia:attribute>
-      <dia:attribute name="end_arrow_length">
-        <dia:real val="0.5"/>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Tries to
+acquire lock A#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.56444442272186279"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="30.425,10.6"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="2"/>
+          </dia:attribute>
+        </dia:composite>
       </dia:attribute>
-      <dia:attribute name="end_arrow_width">
-        <dia:real val="0.5"/>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
       </dia:attribute>
-      <dia:connections>
-        <dia:connection handle="0" to="O7" connection="2"/>
-        <dia:connection handle="1" to="O8" connection="5"/>
-      </dia:connections>
     </dia:object>
-    <dia:object type="Standard - Text" version="1" id="O12">
+    <dia:object type="Standard - Text" version="1" id="O10">
       <dia:attribute name="obj_pos">
-        <dia:point val="31.225,10.6"/>
+        <dia:point val="33.625,12.525"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="28.0425,10.18;31.225,11.2719"/>
+        <dia:rectangle val="31.5937,12.0025;35.6562,14.3583"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#Tries to
-acquire lock A#</dia:string>
+            <dia:string>#Cannot be preempted
+by processes with
+intermediate
+priority#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
@@ -431,13 +382,13 @@ acquire lock A#</dia:string>
             <dia:real val="0.56444442272186279"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="31.225,10.6"/>
+            <dia:point val="33.625,12.525"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="2"/>
+            <dia:enum val="1"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
@@ -445,17 +396,18 @@ acquire lock A#</dia:string>
         <dia:enum val="3"/>
       </dia:attribute>
     </dia:object>
-    <dia:object type="Standard - Text" version="1" id="O13">
+    <dia:object type="Standard - Text" version="1" id="O11">
       <dia:attribute name="obj_pos">
-        <dia:point val="32.375,13.025"/>
+        <dia:point val="36.42,10.6075"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="31.7587,12.605;32.9913,13.1325"/>
+        <dia:rectangle val="31.2275,10.085;36.42,11.3119"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#Waits#</dia:string>
+            <dia:string>#Continues to run with inhe-
+rited priority, release lock#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
@@ -464,13 +416,13 @@ acquire lock A#</dia:string>
             <dia:real val="0.56444442272186279"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="32.375,13.025"/>
+            <dia:point val="36.42,10.6075"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="1"/>
+            <dia:enum val="2"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
@@ -478,17 +430,47 @@ acquire lock A#</dia:string>
         <dia:enum val="3"/>
       </dia:attribute>
     </dia:object>
-    <dia:object type="Standard - Text" version="1" id="O14">
+    <dia:object type="Standard - Box" version="0" id="O12">
       <dia:attribute name="obj_pos">
-        <dia:point val="36.975,14.15"/>
+        <dia:point val="36.76,9.985"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="35.7425,13.73;38.2075,14.2575"/>
+        <dia:rectangle val="36.71,9.935;41.31,11.535"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="36.76,9.985"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="4.5"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="1.5"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0.10000000149011612"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#6a8954"/>
+      </dia:attribute>
+      <dia:attribute name="inner_color">
+        <dia:color val="#c5e387"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O13">
+      <dia:attribute name="obj_pos">
+        <dia:point val="40.145,10.6325"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37.1925,10.11;40.145,11.3369"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#Preempted#</dia:string>
+            <dia:string>#Acquires lock A
+and continues#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
@@ -497,13 +479,13 @@ acquire lock A#</dia:string>
             <dia:real val="0.56444442272186279"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="36.975,14.15"/>
+            <dia:point val="40.145,10.6325"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="1"/>
+            <dia:enum val="2"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
diff --git a/slides/sysdev-realtime/sysdev-realtime.tex b/slides/sysdev-realtime/sysdev-realtime.tex
index 751edbb..c8e70ab 100644
--- a/slides/sysdev-realtime/sysdev-realtime.tex
+++ b/slides/sysdev-realtime/sysdev-realtime.tex
@@ -131,7 +131,8 @@
     \begin{itemize}
     \item The duration of these critical sections is unbounded
     \end{itemize}
-  \item Other possible source: shared interrupts
+  \item Other possible source: shared interrupts (not a real problem:
+        mustn't be used for time-critical interrupt-sources anyway).
   \end{itemize}
   \begin{center}
     \includegraphics[width=0.9\textwidth]{slides/sysdev-realtime/spinlock.pdf}
@@ -347,7 +348,7 @@
     reaction to user input.
   \item Adds explicit rescheduling points throughout kernel code.
   \item Minor impact on throughput.
-  \item Used in: Ubuntu Desktop 13.04, Ubuntu Server 12.04
+  \item Used in: Ubuntu Desktop 15.04, Ubuntu Server 14.04
   \end{itemize}
 \end{frame}
 
@@ -373,12 +374,7 @@
   \begin{itemize}
   \item One classical solution to the priority inversion problem is
     called priority inheritance
-    \begin{itemize}
-    \item The idea is that when a task of a low priority holds a lock
-      requested by a higher priority task, the priority of the first
-      task gets temporarily raised to the priority of the second task:
-      it has inherited its priority.
-    \end{itemize}
+    \includegraphics[width=0.9\textwidth]{slides/sysdev-realtime/priority-inheritance.pdf}
   \item In Linux, since 2.6.18, mutexes support priority inheritance
   \item In user space, priority inheritance must be explicitly enabled
     on a per-mutex basis.
@@ -512,9 +508,9 @@
       otherwise the PREEMPT\_RT patch may not apply and may require
       some adaptations
     \end{itemize}
-  \item At the moment, only "even" releases of the Linux kernel are
-    supported: 3.0, 3.2, 3.4, 3.6, 3.8, 3.10, 3.12, 3.14.
-  \item Quick set up
+  \item Not all releases of the Linux kernel are supported.
+      Currently: 3.0, 3.2, 3.4, 3.6, 3.8, 3.10, 3.12, 3.14, 3.18, 4.0, 4.1
+  \item Quick set up:
     \begin{itemize}
     \item Download the latest PREEMPT\_RT patch\\
       from \footnotesize \url{http://www.kernel.org/pub/linux/kernel/projects/rt/} \normalsize




More information about the training-materials-updates mailing list