<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    On 08/14/2012 07:34 PM, Kirspel, Kevin wrote:
    <blockquote
      cite="mid:201208150037.q7F0ZnjP019513@mx0a-00116901.pphosted.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 12 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:648171470;
        mso-list-type:hybrid;
        mso-list-template-ids:1833494488 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:2075808445;
        mso-list-type:hybrid;
        mso-list-template-ids:1833494488 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif][if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">BTW,
            is there any downside to enabling strict order mutex?  This
            will fix our issue but I’m not sure what other ramifications
            it may have.  We use a handful of semaphores (mostly for
            hardware protection) but I noticed that RTEMS creates a lot
            (mostly LBI*).</span></p>
      </div>
    </blockquote>
    I would run all the tests after enabling it.  :)<br>
    <br>
    I think it might use a little more memory for the additional <br>
    bookkeeping. It also may result in your application getting an <br>
    error code if you unlock in the wrong order.<br>
    <br>
    We need to discuss as a community if this should be turned on<br>
    by default. Honestly, I was surprised we had forgotten to switch<br>
    to this as default. :(<br>
    <blockquote
      cite="mid:201208150037.q7F0ZnjP019513@mx0a-00116901.pphosted.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#1F497D"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <div>
          <p class="MsoNormal"><span style="color:#1F497D">Kevin Kirspel<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="color:#1F497D">Senior
              Research Engineer<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="color:#1F497D">Opti Medical<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="color:#1F497D">235 Hembree
              Park Drive<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="color:#1F497D">Roswell GA
              30076<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="color:#1F497D">Tel:
              (770)-510-4444 ext. 81642<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="color:#1F497D">Direct:
              (770)-688-1642<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="color:#1F497D">Fax:
              (770)-510-4445<o:p></o:p></span></p>
        </div>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #B5C4DF
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">
                Joel Sherrill [<a class="moz-txt-link-freetext" href="mailto:joel.sherrill@oarcorp.com">mailto:joel.sherrill@oarcorp.com</a>] <br>
                <b>Sent:</b> Tuesday, August 14, 2012 5:47 PM<br>
                <b>To:</b> Kirspel, Kevin<br>
                <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:rtems-users@rtems.org">rtems-users@rtems.org</a><br>
                <b>Subject:</b> Re: Semaphore Issue<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">On 08/14/2012 04:15 PM, Kirspel, Kevin
          wrote: <o:p></o:p></p>
        <p class="MsoNormal">I have a situation with semaphores that I
          thought someone may have a quick explanation for.  The
          scenario consists of 2 semaphore/mutexes and priority
          inheritance.  The first semaphore is created by the
          application (S1) and is of type: RTEMS_BINARY_SEMAPHORE |
          RTEMS_PRIORITY | RTEMS_INHERIT_PRIORITY.  The second (S2) is
          the allocator lock mutex that is used by malloc().  My
          scenario is as follows.<o:p></o:p></p>
        <p class="MsoNormal"><span
            style="font-size:12.0pt;font-family:"Times New
            Roman","serif""><br>
            <br>
            <o:p></o:p></span></p>
        <p class="MsoNormal"> <o:p></o:p></p>
        <p class="MsoNormal">Task 1 has priority 36.  Task 2 has
          priority 34.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">1.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 obtains S1.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">2.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 obtains S2<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">3.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          2 preempts Task 1.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">4.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          2 tries to obtain S2 but can’t get it.  Task 1 priority is
          changed to 34.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">5.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 begins running again.  Task 1 releases S2.  Task 1 priority
          is not changed back to 36 and continues to run.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">6.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 continues operating for 3 more seconds.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">7.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 releases S1.  Task 1 priority is now changed back to 36.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">8.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          2 now preempts Task 1 and begins operating again.<o:p></o:p></p>
        <p class="MsoNormal"> <o:p></o:p></p>
        <p class="MsoNormal"><span
            style="font-size:12.0pt;font-family:"Times New
            Roman","serif"">What RTEMS version is this?<br>
            <br>
            This sounds like the priority inheritance release algorithm
            described here:<br>
            <br>
            <a moz-do-not-send="true"
href="http://rtems.org/onlinedocs/doc-current/share/rtems/html/c_user/c_user_208.html#Semaphore-Manager-Priority-Inheritance">http://rtems.org/onlinedocs/doc-current/share/rtems/html/c_user/c_user_208.html#Semaphore-Manager-Priority-Inheritance</a><br>
            <br>
            Priority inherited is not lowered until ALL mutexes are
            released.<br>
            <br>
            There is an optional algorithm (don't recall if it is turned
            on by default) that<br>
            is guarded by the __RTEMS_STRICT_ORDER_MUTEX__ conditional.<br>
            configure with ENABLE_STRICT_ORDER_MUTEX=1 on the command
            line to<br>
            try this algorithm which should properly step down as each
            mutex is released.<br>
            <br>
            <br>
            <o:p></o:p></span></p>
        <p class="MsoNormal">Task 1 is the main user of Semaphore S1. 
          During normal operation no other task will try to obtain it. 
          It is there to protect against some custom shell commands that
          may access the same data.  Semaphore S2 is widely used since
          it protects memory allocation.  If obtaining/releasing S1 is
          removed from the scenario above then everything works OK.<o:p></o:p></p>
        <p class="MsoNormal"> <o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo4"><!--[if !supportLists]--><span
            style="mso-list:Ignore">1.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 obtains S2<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo4"><!--[if !supportLists]--><span
            style="mso-list:Ignore">2.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          2 preempts Task 1.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo4"><!--[if !supportLists]--><span
            style="mso-list:Ignore">3.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          2 tries to obtain S2 but can’t get it.  Task 1 priority is
          changed to 34.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo4"><!--[if !supportLists]--><span
            style="mso-list:Ignore">4.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 begins running again.  Task 1 releases S2.  Task 1 priority
          is now changed back to 36.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo4"><!--[if !supportLists]--><span
            style="mso-list:Ignore">5.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          2 now preempts Task 1 and begins operating again.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo4"><!--[if !supportLists]--><span
            style="mso-list:Ignore">6.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          2 enters wait condition.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo4"><!--[if !supportLists]--><span
            style="mso-list:Ignore">7.<span style="font:7.0pt
              "Times New Roman"">       </span></span><!--[endif]-->Task
          1 continues operating for 3 more seconds and then enters wait
          condition.<o:p></o:p></p>
        <p class="MsoNormal"> <o:p></o:p></p>
        <p class="MsoNormal">I am going to try and duplicate this
          scenario using a small test program but I wanted to see if
          anyone had any ideas of what may be causing the issue.  I have
          a mixed RTEMS source base between versions 4.10 and 4.11.   I
          started with 4.10 and upgraded just enough to get USB support.
          <o:p></o:p></p>
        <p class="MsoNormal"> <o:p></o:p></p>
        <p class="MsoNormal"><span
            style="font-size:12.0pt;font-family:"Times New
            Roman","serif"">Any chance you want to pitch
            in and help resolve some issues on the TCP/IP side? <br>
            We are now up to the IPV4 loopback test and would LOVE to
            have help. :)<br>
            <br>
            <o:p></o:p></span></p>
        <p class="MsoNormal">Kevin Kirspel<o:p></o:p></p>
        <p class="MsoNormal">Senior Research Engineer<o:p></o:p></p>
        <p class="MsoNormal">Opti Medical<o:p></o:p></p>
        <p class="MsoNormal">235 Hembree Park Drive<o:p></o:p></p>
        <p class="MsoNormal">Roswell GA 30076<o:p></o:p></p>
        <p class="MsoNormal">Tel: (770)-510-4444 ext. 81642<o:p></o:p></p>
        <p class="MsoNormal">Direct: (770)-688-1642<o:p></o:p></p>
        <p class="MsoNormal">Fax: (770)-510-4445<o:p></o:p></p>
        <p class="MsoNormal"> <o:p></o:p></p>
        <p class="MsoNormal"><span
            style="font-size:12.0pt;font-family:"Times New
            Roman","serif""><br>
            <br>
            <br>
            <o:p></o:p></span></p>
        <pre>-- <o:p></o:p></pre>
        <pre>Joel Sherrill, Ph.D.             Director of Research&  Development<o:p></o:p></pre>
        <pre><a moz-do-not-send="true" href="mailto:joel.sherrill@OARcorp.com">joel.sherrill@OARcorp.com</a>        On-Line Applications Research<o:p></o:p></pre>
        <pre>Ask me about RTEMS: a free RTOS  Huntsville AL 35805<o:p></o:p></pre>
        <pre>    Support Available             (256) 722-9985<o:p></o:p></pre>
        <pre><o:p> </o:p></pre>
      </div>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Joel Sherrill, Ph.D.             Director of Research&  Development
<a class="moz-txt-link-abbreviated" href="mailto:joel.sherrill@OARcorp.com">joel.sherrill@OARcorp.com</a>        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985

</pre>
  </body>
</html>