[RTEMS Project] #3757: Alternative memory allocators

RTEMS trac trac at rtems.org
Sat Jun 8 08:38:26 UTC 2019


#3757: Alternative memory allocators
------------------------------+-----------------------------
  Reporter:  Sebastian Huber  |      Owner:  Sebastian Huber
      Type:  project          |     Status:  assigned
  Priority:  low              |  Milestone:  Indefinite
 Component:  score            |    Version:  5
  Severity:  normal           |   Keywords:
Blocked By:                   |   Blocking:
------------------------------+-----------------------------
 The current memory allocator in RTEMS uses a first fit strategy. This is
 an excellent allocator if you only allocate memory and never free it.
 However, for real dynamic workloads which allocate and free memory
 throughout the application run-time this strategy is subject to

 * unpredictable allocation times (linear search through free blocks),

 * memory fragmentation.

 The global lock delivers bad performance on SMP systems. RTEMS
 applications run on a broad range of targets, from uniprocessor 64KiB RAM
 to SMP systems with more than 4GiB of RAM. So, the allocator should be
 configurable. Link-time configuration should take into account that some
 applications never free memory. They should not be forced to link in the
 free support.

 Alternative allocator implementations are:

 * [http://www.gii.upv.es/tlsf/ Original TLSF]
 * [https://github.com/mattconte/tlsf BSD licensed TLSF]
 * [http://jemalloc.net/ jemalloc]
 * [https://github.com/freebsd/freebsd/blob/master/sys/kern/kern_malloc.c
 FreeBSD kernel malloc based on UMA]

--
Ticket URL: <http://devel.rtems.org/ticket/3757>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list