[FE training-materials-updates] Deadlocks: improve description

Michael Opdenacker michael.opdenacker at free-electrons.com
Sat Dec 10 06:06:55 CET 2016


Repository : git://git.free-electrons.com/training-materials.git
On branch  : sysdev-4d
Link       : http://git.free-electrons.com/training-materials/commit/?id=988206009a8a3d60d0e37f246c7175c0db9c4449

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

commit 988206009a8a3d60d0e37f246c7175c0db9c4449
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Sat Dec 10 06:06:55 2016 +0100

    Deadlocks: improve description
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


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

988206009a8a3d60d0e37f246c7175c0db9c4449
 .../deadlock-same-lock.dia                         | 175 +++++++++++--
 .../deadlock-two-locks.dia                         | 276 +++++++++++++++++++--
 .../kernel-driver-development-concurrency.tex      |   7 +-
 3 files changed, 414 insertions(+), 44 deletions(-)

diff --git a/slides/kernel-driver-development-concurrency/deadlock-same-lock.dia b/slides/kernel-driver-development-concurrency/deadlock-same-lock.dia
index f351cfb..d6f2a46 100644
--- a/slides/kernel-driver-development-concurrency/deadlock-same-lock.dia
+++ b/slides/kernel-driver-development-concurrency/deadlock-same-lock.dia
@@ -97,7 +97,7 @@
         <dia:point val="13,11"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="11.2925,10.6263;14.7075,11.3738"/>
+        <dia:rectangle val="11.515,10.53;14.485,11.47"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -111,7 +111,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="13,11.2213"/>
+            <dia:point val="13,11.27"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -130,13 +130,13 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O2">
       <dia:attribute name="obj_pos">
-        <dia:point val="13,7"/>
+        <dia:point val="13,8"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="12.6382,6.95;13.3618,10.1118"/>
+        <dia:rectangle val="12.6382,7.95;13.3618,10.1118"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="13,7"/>
+        <dia:point val="13,8"/>
         <dia:point val="13,10"/>
       </dia:attribute>
       <dia:attribute name="numcp">
@@ -189,7 +189,7 @@
         <dia:point val="23,11"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="20.2138,10.6263;25.7863,11.3738"/>
+        <dia:rectangle val="20.5725,10.53;25.4275,11.47"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -203,7 +203,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="23,11.2213"/>
+            <dia:point val="23,11.27"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -222,13 +222,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O5">
       <dia:attribute name="obj_pos">
-        <dia:point val="20,15"/>
+        <dia:point val="20,14"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="19.95,14.95;26.05,17.05"/>
+        <dia:rectangle val="19.95,13.95;26.05,16.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="20,15"/>
+        <dia:point val="20,14"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="6"/>
@@ -251,10 +251,10 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O6">
       <dia:attribute name="obj_pos">
-        <dia:point val="23,16"/>
+        <dia:point val="23,15"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="20.615,15.6263;25.385,16.3738"/>
+        <dia:rectangle val="20.8825,14.53;25.1175,15.47"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -268,7 +268,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="23,16.2213"/>
+            <dia:point val="23,15.27"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -318,11 +318,11 @@
         <dia:point val="23,12"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="22.6382,11.95;23.3618,15.1118"/>
+        <dia:rectangle val="22.6382,11.95;23.3618,14.1118"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
         <dia:point val="23,12"/>
-        <dia:point val="23,15"/>
+        <dia:point val="23,14"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -341,5 +341,150 @@
         <dia:connection handle="1" to="O5" connection="1"/>
       </dia:connections>
     </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O9">
+      <dia:attribute name="obj_pos">
+        <dia:point val="25.8,21"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="25.8,20.405;25.8,21.15"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="25.8,21"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O10">
+      <dia:attribute name="obj_pos">
+        <dia:point val="26,15"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="25.95,14.6382;30.1118,15.3618"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="26,15"/>
+        <dia:point val="30,15"/>
+      </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="O5" connection="4"/>
+        <dia:connection handle="1" to="O11" connection="14"/>
+      </dia:connections>
+    </dia:object>
+    <dia:group>
+      <dia:object type="Geometric - Octogon" version="1" id="O11">
+        <dia:attribute name="obj_pos">
+          <dia:point val="30,13"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="29.9,12.9;34.1,17.1"/>
+        </dia:attribute>
+        <dia:attribute name="meta">
+          <dia:composite type="dict"/>
+        </dia:attribute>
+        <dia:attribute name="elem_corner">
+          <dia:point val="30,13"/>
+        </dia:attribute>
+        <dia:attribute name="elem_width">
+          <dia:real val="4"/>
+        </dia:attribute>
+        <dia:attribute name="elem_height">
+          <dia:real val="4"/>
+        </dia:attribute>
+        <dia:attribute name="line_width">
+          <dia:real val="0.20000000298023224"/>
+        </dia:attribute>
+        <dia:attribute name="line_colour">
+          <dia:color val="#cc1f1a"/>
+        </dia:attribute>
+        <dia:attribute name="fill_colour">
+          <dia:color val="#ff0000"/>
+        </dia:attribute>
+        <dia:attribute name="show_background">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+        <dia:attribute name="line_style">
+          <dia:enum val="0"/>
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="flip_horizontal">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="flip_vertical">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="subscale">
+          <dia:real val="1"/>
+        </dia:attribute>
+      </dia:object>
+      <dia:object type="Standard - Text" version="1" id="O12">
+        <dia:attribute name="obj_pos">
+          <dia:point val="32.0952,15.0952"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="31.204,14.5002;32.9865,16.0452"/>
+        </dia:attribute>
+        <dia:attribute name="text">
+          <dia:composite type="text">
+            <dia:attribute name="string">
+              <dia:string>#dead
+lock#</dia:string>
+            </dia:attribute>
+            <dia:attribute name="font">
+              <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+            </dia:attribute>
+            <dia:attribute name="height">
+              <dia:real val="0.80000000000000004"/>
+            </dia:attribute>
+            <dia:attribute name="pos">
+              <dia:point val="32.0952,15.0952"/>
+            </dia:attribute>
+            <dia:attribute name="color">
+              <dia:color val="#ffffff"/>
+            </dia:attribute>
+            <dia:attribute name="alignment">
+              <dia:enum val="1"/>
+            </dia:attribute>
+          </dia:composite>
+        </dia:attribute>
+        <dia:attribute name="valign">
+          <dia:enum val="3"/>
+        </dia:attribute>
+        <dia:connections>
+          <dia:connection handle="0" to="O11" connection="15"/>
+        </dia:connections>
+      </dia:object>
+    </dia:group>
   </dia:layer>
 </dia:diagram>
diff --git a/slides/kernel-driver-development-concurrency/deadlock-two-locks.dia b/slides/kernel-driver-development-concurrency/deadlock-two-locks.dia
index afca8ff..212aea5 100644
--- a/slides/kernel-driver-development-concurrency/deadlock-two-locks.dia
+++ b/slides/kernel-driver-development-concurrency/deadlock-two-locks.dia
@@ -97,7 +97,7 @@
         <dia:point val="11,7"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="9.2925,6.62625;12.7075,7.37375"/>
+        <dia:rectangle val="9.515,6.53;12.485,7.47"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -111,7 +111,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="11,7.22125"/>
+            <dia:point val="11,7.27"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -130,13 +130,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O2">
       <dia:attribute name="obj_pos">
-        <dia:point val="8,11"/>
+        <dia:point val="8,10"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.95,10.95;14.05,13.05"/>
+        <dia:rectangle val="7.95,9.95;14.05,12.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="8,11"/>
+        <dia:point val="8,10"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="6"/>
@@ -159,10 +159,10 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O3">
       <dia:attribute name="obj_pos">
-        <dia:point val="11,12"/>
+        <dia:point val="11,11"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="9.2925,11.6263;12.7075,12.3738"/>
+        <dia:rectangle val="9.515,10.53;12.485,11.47"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -176,7 +176,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="11,12.2213"/>
+            <dia:point val="11,11.27"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -227,7 +227,7 @@
         <dia:point val="23,7"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="21.2925,6.62625;24.7075,7.37375"/>
+        <dia:rectangle val="21.515,6.53;24.485,7.47"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -241,7 +241,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="23,7.22125"/>
+            <dia:point val="23,7.27"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -260,13 +260,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O6">
       <dia:attribute name="obj_pos">
-        <dia:point val="20,11"/>
+        <dia:point val="20,10"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="19.95,10.95;26.05,13.05"/>
+        <dia:rectangle val="19.95,9.95;26.05,12.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="20,11"/>
+        <dia:point val="20,10"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="6"/>
@@ -289,10 +289,10 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O7">
       <dia:attribute name="obj_pos">
-        <dia:point val="23,12"/>
+        <dia:point val="23,11"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="21.2925,11.6263;24.7075,12.3738"/>
+        <dia:rectangle val="21.515,10.53;24.485,11.47"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -306,7 +306,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="23,12.2213"/>
+            <dia:point val="23,11.27"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -325,13 +325,13 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O8">
       <dia:attribute name="obj_pos">
-        <dia:point val="23,3"/>
+        <dia:point val="23,4"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="22.6382,2.95;23.3618,6.1118"/>
+        <dia:rectangle val="22.6382,3.95;23.3618,6.1118"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="23,3"/>
+        <dia:point val="23,4"/>
         <dia:point val="23,6"/>
       </dia:attribute>
       <dia:attribute name="numcp">
@@ -355,11 +355,11 @@
         <dia:point val="23,8"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="22.6382,7.95;23.3618,11.1118"/>
+        <dia:rectangle val="22.6382,7.95;23.3618,10.1118"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
         <dia:point val="23,8"/>
-        <dia:point val="23,11"/>
+        <dia:point val="23,10"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -383,11 +383,11 @@
         <dia:point val="11,8"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="10.6382,7.95;11.3618,11.1118"/>
+        <dia:rectangle val="10.6382,7.95;11.3618,10.1118"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
         <dia:point val="11,8"/>
-        <dia:point val="11,11"/>
+        <dia:point val="11,10"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -408,13 +408,13 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O11">
       <dia:attribute name="obj_pos">
-        <dia:point val="11,3"/>
+        <dia:point val="11,4"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="10.6382,2.95;11.3618,6.1118"/>
+        <dia:rectangle val="10.6382,3.95;11.3618,6.1118"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="11,3"/>
+        <dia:point val="11,4"/>
         <dia:point val="11,6"/>
       </dia:attribute>
       <dia:attribute name="numcp">
@@ -433,5 +433,229 @@
         <dia:connection handle="1" to="O0" connection="1"/>
       </dia:connections>
     </dia:object>
+    <dia:group>
+      <dia:object type="Geometric - Octogon" version="1" id="O12">
+        <dia:attribute name="obj_pos">
+          <dia:point val="9,14"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="8.9,13.9;13.1,18.1"/>
+        </dia:attribute>
+        <dia:attribute name="meta">
+          <dia:composite type="dict"/>
+        </dia:attribute>
+        <dia:attribute name="elem_corner">
+          <dia:point val="9,14"/>
+        </dia:attribute>
+        <dia:attribute name="elem_width">
+          <dia:real val="4"/>
+        </dia:attribute>
+        <dia:attribute name="elem_height">
+          <dia:real val="4"/>
+        </dia:attribute>
+        <dia:attribute name="line_width">
+          <dia:real val="0.20000000298023224"/>
+        </dia:attribute>
+        <dia:attribute name="line_colour">
+          <dia:color val="#cc1f1a"/>
+        </dia:attribute>
+        <dia:attribute name="fill_colour">
+          <dia:color val="#ff0000"/>
+        </dia:attribute>
+        <dia:attribute name="show_background">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+        <dia:attribute name="line_style">
+          <dia:enum val="0"/>
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="flip_horizontal">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="flip_vertical">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="subscale">
+          <dia:real val="1"/>
+        </dia:attribute>
+      </dia:object>
+      <dia:object type="Standard - Text" version="1" id="O13">
+        <dia:attribute name="obj_pos">
+          <dia:point val="11.0952,16.0952"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="10.204,15.5002;11.9865,17.0452"/>
+        </dia:attribute>
+        <dia:attribute name="text">
+          <dia:composite type="text">
+            <dia:attribute name="string">
+              <dia:string>#dead
+lock#</dia:string>
+            </dia:attribute>
+            <dia:attribute name="font">
+              <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+            </dia:attribute>
+            <dia:attribute name="height">
+              <dia:real val="0.80000000000000004"/>
+            </dia:attribute>
+            <dia:attribute name="pos">
+              <dia:point val="11.0952,16.0952"/>
+            </dia:attribute>
+            <dia:attribute name="color">
+              <dia:color val="#ffffff"/>
+            </dia:attribute>
+            <dia:attribute name="alignment">
+              <dia:enum val="1"/>
+            </dia:attribute>
+          </dia:composite>
+        </dia:attribute>
+        <dia:attribute name="valign">
+          <dia:enum val="3"/>
+        </dia:attribute>
+        <dia:connections>
+          <dia:connection handle="0" to="O12" connection="15"/>
+        </dia:connections>
+      </dia:object>
+    </dia:group>
+    <dia:group>
+      <dia:object type="Geometric - Octogon" version="1" id="O14">
+        <dia:attribute name="obj_pos">
+          <dia:point val="21,14"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="20.9,13.9;25.1,18.1"/>
+        </dia:attribute>
+        <dia:attribute name="meta">
+          <dia:composite type="dict"/>
+        </dia:attribute>
+        <dia:attribute name="elem_corner">
+          <dia:point val="21,14"/>
+        </dia:attribute>
+        <dia:attribute name="elem_width">
+          <dia:real val="4"/>
+        </dia:attribute>
+        <dia:attribute name="elem_height">
+          <dia:real val="4"/>
+        </dia:attribute>
+        <dia:attribute name="line_width">
+          <dia:real val="0.20000000298023224"/>
+        </dia:attribute>
+        <dia:attribute name="line_colour">
+          <dia:color val="#cc1f1a"/>
+        </dia:attribute>
+        <dia:attribute name="fill_colour">
+          <dia:color val="#ff0000"/>
+        </dia:attribute>
+        <dia:attribute name="show_background">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+        <dia:attribute name="line_style">
+          <dia:enum val="0"/>
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="flip_horizontal">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="flip_vertical">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="subscale">
+          <dia:real val="1"/>
+        </dia:attribute>
+      </dia:object>
+      <dia:object type="Standard - Text" version="1" id="O15">
+        <dia:attribute name="obj_pos">
+          <dia:point val="23.0952,16.0952"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="22.204,15.5002;23.9865,17.0452"/>
+        </dia:attribute>
+        <dia:attribute name="text">
+          <dia:composite type="text">
+            <dia:attribute name="string">
+              <dia:string>#dead
+lock#</dia:string>
+            </dia:attribute>
+            <dia:attribute name="font">
+              <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+            </dia:attribute>
+            <dia:attribute name="height">
+              <dia:real val="0.80000000000000004"/>
+            </dia:attribute>
+            <dia:attribute name="pos">
+              <dia:point val="23.0952,16.0952"/>
+            </dia:attribute>
+            <dia:attribute name="color">
+              <dia:color val="#ffffff"/>
+            </dia:attribute>
+            <dia:attribute name="alignment">
+              <dia:enum val="1"/>
+            </dia:attribute>
+          </dia:composite>
+        </dia:attribute>
+        <dia:attribute name="valign">
+          <dia:enum val="3"/>
+        </dia:attribute>
+        <dia:connections>
+          <dia:connection handle="0" to="O14" connection="15"/>
+        </dia:connections>
+      </dia:object>
+    </dia:group>
+    <dia:object type="Standard - Line" version="0" id="O16">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11,12"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="10.6382,11.95;11.3618,14.1118"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="11,12"/>
+        <dia:point val="11,14"/>
+      </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="O2" connection="6"/>
+        <dia:connection handle="1" to="O12" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O17">
+      <dia:attribute name="obj_pos">
+        <dia:point val="23,12"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="22.6382,11.95;23.3618,14.1118"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="23,12"/>
+        <dia:point val="23,14"/>
+      </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="6"/>
+        <dia:connection handle="1" to="O14" connection="8"/>
+      </dia:connections>
+    </dia:object>
   </dia:layer>
 </dia:diagram>
diff --git a/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex b/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex
index 15276e2..2b25d4c 100644
--- a/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex
+++ b/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex
@@ -217,14 +217,15 @@ static unsigned int ulite_tx_empty
 
 \begin{frame}
   \frametitle{Deadlock Situations}
+  They can lock up your system. Make sure they never happen!
   \begin{itemize}
-  \item They can lock up your system. Make sure they never happen!
-  \item Don't call a function that can try to get access to the same
+  \item Rule: never call a function that can try to get access to the same
     lock
     \begin{center}
       \includegraphics[height=0.3\textheight]{slides/kernel-driver-development-concurrency/deadlock-same-lock.pdf}
     \end{center}
-  \item Holding multiple locks is risky!
+  \item Rule: when you use multiple locks, always acquire them in the
+    same order
     \begin{center}
       \includegraphics[height=0.3\textheight]{slides/kernel-driver-development-concurrency/deadlock-two-locks.pdf}
     \end{center}




More information about the training-materials-updates mailing list