<div dir="ltr">Dear all,<div><br></div><div>Recently i have been study the RTEMS code and all related resource about condition variables. At the meantime i am preparing a proposal for this GSOC project. Although it is just a skeleton draft, i think it is better to throw it ASAP. So that everyone can give me some valuable suggestions. And my proposal is managed by github, so if you have any comments you can just open a new issue to me. Waiting for all your comments! Thank you! </div>
<div><br></div><div><a href="https://github.com/cloud-hot/proposal">https://github.com/cloud-hot/proposal</a><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-04 8:42 GMT+08:00 zhang json <span dir="ltr"><<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Sebastian,<div><br></div><div>Thank you for your reply!</div><div><br><div class="gmail_extra"><div class="gmail_quote">
2014-03-03 15:06 GMT+08:00 Sebastian Huber <span dir="ltr"><<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>></span>:<div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 2014-03-02 03:40, zhang json wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<br>
2014-02-28 15:15 GMT+08:00 Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-<u></u>brains.de</a><br></div>
<mailto:<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@<u></u>embedded-brains.de</a>>>:<div><br>
<br>
    On 2014-02-28 01:12, zhang json wrote:<br>
<br>
<br>
        2014-02-26 1:07 GMT+08:00 Gedare Bloom <<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a><br>
        <mailto:<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>><br></div>
        <mailto:<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a> <mailto:<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>>>>:<div><br>
<br>
<br>
             You may like to read<br></div>
        <a href="http://wiki.rtems.org/wiki/__index.php/SMP#Non-Preempt___Mode_for_Mutual_Exclusion" target="_blank">http://wiki.rtems.org/wiki/__<u></u>index.php/SMP#Non-Preempt___<u></u>Mode_for_Mutual_Exclusion</a><div>

<br>
        <<a href="http://wiki.rtems.org/wiki/index.php/SMP#Non-Preempt_Mode_for_Mutual_Exclusion" target="_blank">http://wiki.rtems.org/wiki/<u></u>index.php/SMP#Non-Preempt_<u></u>Mode_for_Mutual_Exclusion</a>><br>


             in addition to the Condition Variables project page. You can search<br>
             for "condition variable" in a search engine to get some useful<br>
             background material. More below.<br>
<br>
        Thank you for your reply. I will search and prepare this project and a<br>
        draft<br>
        will be post ASAP.<br>
<br>
             On Tue, Feb 25, 2014 at 9:45 AM, zhang json<br>
        <<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a> <mailto:<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a><u></u>><br></div>
             <mailto:<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a> <mailto:<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a><u></u>>__>><div>

<br>
        wrote:<br>
              > Hi all,<br>
              ><br>
              > I am a student who is preparing for participating  the<br>
        GSOC2014, and from<br>
              > 'Open Project' i found a interesting project 'Condition<br>
        Variables'. So i<br>
              > want to know the basic information about the status of this<br>
        project.<br>
              ><br>
              > There is a bug [1] which is maybe related to it but it seems that<br>
              > 'Condition Variables' is not the main problem of this bug. So<br>
        my confusion<br>
              > is blow:<br>
              ><br>
              > 1. As one of the classic operating system synchronization<br>
        primitives whether<br>
              > RTEMS has a basic 'Condition Variables' support?<br>
             RTEMS lacks a condition variable (monitor) implementation within the<br>
             classic API located in cpukit/rtems/*, and also within the supercore<br>
             "kernel" interface located in cpukit/score/*. There is condition<br>
             variables support in posix, as the<br></div>
             cpukit/posix/include/rtems/__<u></u>posix/condimpl.h.<div><br>
<br>
        OK, i have some rtems experience so i will first design the CV and<br>
        implement it<br>
        in score component, then warp it into classic api.<br>
<br>
<br>
    We already have a CV implementation in RTEMS.  It is currently only<br>
    available for the PThread API.  What we need is a definition for the<br>
    Classic API and a shared implementation.  We should also address potential<br>
    priority inversion issues of CV in combination with priority based schedulers.<br>
<br>
Could you tell me where i can find the code of CV implementation for the<br>
Pthread API? and CV is also implemented in the score? then needed work is to<br>
implement a classic API for CV and shared its implementation?<br>
</div></blockquote>
<br>
Answering this question gives you a good opportunity to discover the RTEMS sources.<br>
<br></blockquote></div></div><div>Yeah, recently i have been studying the RTEMS code.</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<br>
              > 2. If answer not from 1, what is the requirement of the<br>
        implementation?<br>
             It should implement a classic API condition variable that can be<br>
             similar to the classic API implementation of semaphore<br></div>
             (cpukit/rtems/include/rtems/__<u></u>rtems/sem.h and semimpl.h). The<div><br>
        condition<br>
             variable should be implemented in the supercore (cpukit/score) and<br>
             that implementation should be shared by the posix condvar and the<br>
             classic API condition variables.<br>
<br>
        Yeah, i will refer to implementation of semaphore and mutex. And there<br>
        are lots<br>
        of open source CV implementation for many os, such freebsd, netbsd, linux,<br>
        eCos. About linux its license may be is not compatible with RTEMS, so i<br>
        just<br>
        learn its idea instead of code.<br>
<br>
              > 3. Whether its implementation should support SMP?<br>
              ><br>
             The implementation must support SMP.<br>
<br>
        Yeah, it will be a challenge. But as i know the SMP support of RTEMS is<br>
        becoming better, some SMP synchronization primitives have been support,<br>
        like<br>
        atomic. I am wondering whether semaphore and mutex is supported SMP?<br>
<br>
<br>
    The SMP support in RTEMS is currently based on a Giant lock.  So most<br>
    objects simply work.<br>
<br>
And in the future should the Giant lock be removed? so now should we consider<br>
this situation, or we can first use Giant lock and then replace it with other<br>
safe lock later.<br>
</div></blockquote>
<br>
Yes, the Giant lock must be removed to get a real-time operating system that can compete on the market.  Removing the Giant lock is however a major challenge and beyond a GSoC project.<br>
<br>
<a href="http://www.rtems.org/wiki/index.php?title=SMP#Fine_Grained_Locking" target="_blank">http://www.rtems.org/wiki/<u></u>index.php?title=SMP#Fine_<u></u>Grained_Locking</a><div><div><br></div>
</div></blockquote></div></div><div>Maybe i can consider it as a future work after GSOC project.</div><div class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : +49 89 189 47 41-16<br>
Fax     : +49 89 189 47 41-09<br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-<u></u>brains.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
</div></div></blockquote></div></div><br><br clear="all"><div class=""><div><br></div>-- <br><div dir="ltr">Json Zhang<div>Best Regards</div></div>
</div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Json Zhang<div>Best Regards</div></div>
</div>