Concurrency Kit and Epoch Based Reclamation

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Sep 4 05:59:35 UTC 2018


On 03/09/18 11:35, Sebastian Huber wrote:
> Hello,
>
> I have now a prototype implementation of the FreeBSD epoch memory 
> reclamation API:
>
> https://github.com/freebsd/freebsd/blob/master/share/man/man9/epoch.9
>
> I think it would be a nice feature for RTEMS SMP in general. One 
> option would be to integrate it in RTEMS instead of libbsd. This would 
> require an import of Concurrency Kit to RTEMS:
>
> https://github.com/concurrencykit/ck
>
> Concurrency Kit lacks support for C++ and needs probably some changes 
> to work well in uni-processor setups. So, it would need some changes 
> for RTEMS. What do you think?
>

Just some more background information. The Concurrency Kit offers an 
epoch API for general use and is used by FreeBSD. The epoch API and 
implementation from FreeBSD is a specialization which deals also with 
the storage management of the epoch records (ck_epoch_record_t) as a 
per-processor resource. The use of per-processor data is a very elegant 
approach which avoids some life cycle issues which would pop up if 
thread-local records would be used.

The measured performance on a T4240 is quite good. Concurrent enter/exit 
scales linearly up to 12 processors, then I guess a bus saturation is 
reached.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: epoch.png
Type: image/png
Size: 60254 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20180904/a9cedfee/attachment-0001.png>


More information about the devel mailing list