<div dir="ltr">Hi all,<div><br></div><div style>I have updated my proposal, and your comments are welcome! </div><div style><br></div><div style><a href="https://github.com/cloud-hot/proposal/blob/master/proposal.md">https://github.com/cloud-hot/proposal/blob/master/proposal.md</a><br>
</div><div style><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>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc 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 class="">
<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc 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 class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc 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 class="h5"><br><br clear="all"><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>