<div dir="ltr"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 4, 2018 at 12:59 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 03/09/18 11:35, Sebastian Huber wrote:<br>
> Hello,<br>
><br>
> I have now a prototype implementation of the FreeBSD epoch memory <br>
> reclamation API:<br>
><br>
> <a href="https://github.com/freebsd/freebsd/blob/master/share/man/man9/epoch.9" rel="noreferrer" target="_blank">https://github.com/freebsd/freebsd/blob/master/share/man/man9/epoch.9</a><br>
><br>
> I think it would be a nice feature for RTEMS SMP in general. One <br>
> option would be to integrate it in RTEMS instead of libbsd. This would <br>
> require an import of Concurrency Kit to RTEMS:<br>
><br>
> <a href="https://github.com/concurrencykit/ck" rel="noreferrer" target="_blank">https://github.com/concurrencykit/ck</a><br>
><br>
> Concurrency Kit lacks support for C++ and needs probably some changes <br>
> to work well in uni-processor setups. So, it would need some changes <br>
> for RTEMS. What do you think?<br></blockquote><div><br></div><div>The license has a BSD-style advertising clause.</div><div><br></div><div><div>Redistribution and use in source and binary forms, with or without</div><div>modification, are permitted provided that the following conditions</div><div>are met:</div><div>1. Redistributions of source code must retain the above copyright</div><div>   notice, this list of conditions and the following disclaimer.</div><div>2. Redistributions in binary form must reproduce the above copyright</div><div>   notice, this list of conditions and the following disclaimer in the</div><div>   documentation and/or other materials provided with the distribution.</div></div><div><br></div><div>Is condition #2 ok for inclusion in RTEMS?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
><br>
<br>
Just some more background information. The Concurrency Kit offers an <br>
epoch API for general use and is used by FreeBSD. The epoch API and <br>
implementation from FreeBSD is a specialization which deals also with <br>
the storage management of the epoch records (ck_epoch_record_t) as a <br>
per-processor resource. The use of per-processor data is a very elegant <br>
approach which avoids some life cycle issues which would pop up if <br>
thread-local records would be used.<br>
<br>
The measured performance on a T4240 is quite good. Concurrent enter/exit <br>
scales linearly up to 12 processors, then I guess a bus saturation is <br>
reached.<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>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a></blockquote></div></div></div>