Audio latency updates

Add priority inversion as one of the contributors to audio latency.
Add more tips to latency measurement.
Add latency video link.

Change-Id: I03080dc0ba003c6b95cd2d5eaa3b4a4dfc8960a8
diff --git a/src/devices/audio/latency_contrib.jd b/src/devices/audio/latency_contrib.jd
index fb7cd71..2969ba2 100644
--- a/src/devices/audio/latency_contrib.jd
+++ b/src/devices/audio/latency_contrib.jd
@@ -49,6 +49,9 @@
   system designer then increases buffer sizes or buffer counts.
   This has the desired result of eliminating the underruns or overruns, but it also
   has the undesired side effect of increasing latency.
+  For more information about buffer sizes, see the video
+  <a href="https://youtu.be/PnDK17zP9BI">Audio latency: buffer sizes</a>.
+
 </p>
 
 <p>
@@ -64,6 +67,7 @@
 <ul>
   <li>Linux CFS (Completely Fair Scheduler)</li>
   <li>high-priority threads with SCHED_FIFO scheduling</li>
+  <li>priority inversion</li>
   <li>long scheduling latency</li>
   <li>long-running interrupt handlers</li>
   <li>long interrupt disable time</li>
@@ -123,6 +127,18 @@
   with the scheduling of true periodic threads.
 </p>
 
+<h3 id="priorityInversion">Priority inversion</h3>
+<p>
+  <a href="http://en.wikipedia.org/wiki/Priority_inversion">Priority inversion</a>
+  is a classic failure mode of real-time systems,
+  where a higher-priority task is blocked for an unbounded time waiting
+  for a lower-priority task to release a resource such as (shared
+  state protected by) a
+  <a href="http://en.wikipedia.org/wiki/Mutual_exclusion">mutex</a>.
+  See the article "<a href="avoiding_pi.html">Avoiding priority inversion</a>" for techniques to
+  mitigate it.
+</p>
+
 <h3 id="schedLatency">Scheduling latency</h3>
 <p>
   Scheduling latency is the time between when a thread becomes