<div dir="ltr">Hi all,<div><br></div><div>I have updated my proposal on both melange[0] and github[1], if you have any comment please tell me. Thank you!</div><div><br></div><div>Updates:</div><div>1. Modify the plan scheduling according to Gedare comments, thank you Gedare!</div>
<div>2. Add a plan for 'Improve the classic CV capabilities, such as dealing with priority inversion', this feature is mentioned on wiki[2], and i have a basic understand about its meaning. But if anyone can explain more deeper i will be grateful for you.</div>
<div><br></div><div>0. <a href="https://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/json1984/5629499534213120">https://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/json1984/5629499534213120</a></div>
<div>1. <a href="https://github.com/cloud-hot/proposal/blob/master/proposal.md" target="_blank">https://github.com/cloud-hot/proposal/blob/master/proposal.md</a></div><div>2. <a href="http://wiki.rtems.org/wiki/index.php/Condition_Variables">http://wiki.rtems.org/wiki/index.php/Condition_Variables</a><br>
<div class="gmail_extra"><br><div class="gmail_quote">2014-03-10 20:46 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:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">Hi all,<div><br></div><div>I have updated my proposal, and your comments are welcome! </div><div><br></div><div><a href="https://github.com/cloud-hot/proposal/blob/master/proposal.md" target="_blank">https://github.com/cloud-hot/proposal/blob/master/proposal.md</a><br>

</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-04 21:49 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>:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">
2014-03-04 21:32 GMT+08:00 Gedare Bloom <span dir="ltr"><<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>></span>:<div>
<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>On Mon, Mar 3, 2014 at 7:51 PM, zhang json <<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a>> wrote:<br>
> Dear all,<br>
><br>
> Recently i have been study the RTEMS code and all related resource about<br>
> condition variables. At the meantime i am preparing a proposal for this GSOC<br>
> project. Although it is just a skeleton draft, i think it is better to throw<br>
> it ASAP. So that everyone can give me some valuable suggestions. And my<br>
> proposal is managed by github, so if you have any comments you can just open<br>
> a new issue to me. Waiting for all your comments! Thank you!<br>
><br>
> <a href="https://github.com/cloud-hot/proposal" target="_blank">https://github.com/cloud-hot/proposal</a><br>
><br>
</div>Please add yourself and the link to your proposal to the table at<br>
<a href="http://wiki.rtems.org/wiki/index.php/RTEMSSummerOfCode#Students.27_Proposals" target="_blank">http://wiki.rtems.org/wiki/index.php/RTEMSSummerOfCode#Students.27_Proposals</a><br>
<div><div><br></div></div></blockquote></div><div>Done+</div><div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div>

><br>
><br>
> 2014-03-04 8:42 GMT+08:00 zhang json <<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a>>:<br>
><br>
>> Hi Sebastian,<br>
>><br>
>> Thank you for your reply!<br>
>><br>
>> 2014-03-03 15:06 GMT+08:00 Sebastian Huber<br>
>> <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>>:<br>
>><br>
>>> On 2014-03-02 03:40, zhang json wrote:<br>
>>>><br>
>>>><br>
>>>> 2014-02-28 15:15 GMT+08:00 Sebastian Huber<br>
>>>> <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a><br>
>>>> <mailto:<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>>>:<br>
>>>><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>
>>>>         <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>>>>:<br>
>>>><br>
>>>><br>
>>>><br>
>>>>              You may like to read<br>
>>>><br>
>>>> <a href="http://wiki.rtems.org/wiki/__index.php/SMP#Non-Preempt___Mode_for_Mutual_Exclusion" target="_blank">http://wiki.rtems.org/wiki/__index.php/SMP#Non-Preempt___Mode_for_Mutual_Exclusion</a><br>
>>>><br>
>>>><br>
>>>> <<a href="http://wiki.rtems.org/wiki/index.php/SMP#Non-Preempt_Mode_for_Mutual_Exclusion" target="_blank">http://wiki.rtems.org/wiki/index.php/SMP#Non-Preempt_Mode_for_Mutual_Exclusion</a>><br>
>>>>              in addition to the Condition Variables project page. You<br>
>>>> can search<br>
>>>>              for "condition variable" in a search engine to get some<br>
>>>> useful<br>
>>>>              background material. More below.<br>
>>>><br>
>>>>         Thank you for your reply. I will search and prepare this project<br>
>>>> 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>><br>
>>>>              <mailto:<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a><br>
>>>> <mailto:<a href="mailto:json.a.zhang@gmail.com" target="_blank">json.a.zhang@gmail.com</a>>__>><br>
>>>><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<br>
>>>> this<br>
>>>>         project.<br>
>>>>               ><br>
>>>>               > There is a bug [1] which is maybe related to it but it<br>
>>>> seems that<br>
>>>>               > 'Condition Variables' is not the main problem of this<br>
>>>> bug. So<br>
>>>>         my confusion<br>
>>>>               > is blow:<br>
>>>>               ><br>
>>>>               > 1. As one of the classic operating system<br>
>>>> synchronization<br>
>>>>         primitives whether<br>
>>>>               > RTEMS has a basic 'Condition Variables' support?<br>
>>>>              RTEMS lacks a condition variable (monitor) implementation<br>
>>>> within the<br>
>>>>              classic API located in cpukit/rtems/*, and also within the<br>
>>>> supercore<br>
>>>>              "kernel" interface located in cpukit/score/*. There is<br>
>>>> condition<br>
>>>>              variables support in posix, as the<br>
>>>>              cpukit/posix/include/rtems/__posix/condimpl.h.<br>
>>>><br>
>>>><br>
>>>>         OK, i have some rtems experience so i will first design the CV<br>
>>>> 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<br>
>>>> potential<br>
>>>>     priority inversion issues of CV in combination with priority based<br>
>>>> 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<br>
>>>> is to<br>
>>>> implement a classic API for CV and shared its implementation?<br>
>>><br>
>>><br>
>>> Answering this question gives you a good opportunity to discover the<br>
>>> RTEMS sources.<br>
>>><br>
>> Yeah, recently i have been studying the RTEMS code.<br>
>><br>
>>>><br>
>>>><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<br>
>>>> can be<br>
>>>>              similar to the classic API implementation of semaphore<br>
>>>>              (cpukit/rtems/include/rtems/__rtems/sem.h and semimpl.h).<br>
>>>> The<br>
>>>><br>
>>>>         condition<br>
>>>>              variable should be implemented in the supercore<br>
>>>> (cpukit/score) and<br>
>>>>              that implementation should be shared by the posix condvar<br>
>>>> and the<br>
>>>>              classic API condition variables.<br>
>>>><br>
>>>>         Yeah, i will refer to implementation of semaphore and mutex. And<br>
>>>> there<br>
>>>>         are lots<br>
>>>>         of open source CV implementation for many os, such freebsd,<br>
>>>> netbsd, linux,<br>
>>>>         eCos. About linux its license may be is not compatible with<br>
>>>> 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<br>
>>>> RTEMS is<br>
>>>>         becoming better, some SMP synchronization primitives have been<br>
>>>> support,<br>
>>>>         like<br>
>>>>         atomic. I am wondering whether semaphore and mutex is supported<br>
>>>> SMP?<br>
>>>><br>
>>>><br>
>>>>     The SMP support in RTEMS is currently based on a Giant lock.  So<br>
>>>> most<br>
>>>>     objects simply work.<br>
>>>><br>
>>>> And in the future should the Giant lock be removed? so now should we<br>
>>>> consider<br>
>>>> this situation, or we can first use Giant lock and then replace it with<br>
>>>> other<br>
>>>> safe lock later.<br>
>>><br>
>>><br>
>>> Yes, the Giant lock must be removed to get a real-time operating system<br>
>>> that can compete on the market.  Removing the Giant lock is however a major<br>
>>> 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/index.php?title=SMP#Fine_Grained_Locking</a><br>
>>><br>
>> Maybe i can consider it as a future work after GSOC project.<br>
>><br>
>>><br>
>>><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-brains.de</a><br>
>>> PGP     : Public key available on request.<br>
>>><br>
>>> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
>><br>
>><br>
>><br>
>><br>
>> --<br>
>> Json Zhang<br>
>> Best Regards<br>
><br>
><br>
><br>
><br>
> --<br>
> Json Zhang<br>
> Best Regards<br>
><br>
</div></div><div><div>> _______________________________________________<br>
> rtems-devel mailing list<br>
> <a href="mailto:rtems-devel@rtems.org" target="_blank">rtems-devel@rtems.org</a><br>
> <a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
><br>
</div></div></blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Json Zhang<div>Best Regards</div></div>
</div></div></div></div>
</blockquote></div></div></div><div><div class="h5"><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Json Zhang<div>Best Regards</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></div></div>