Commit Graph

25 Commits

Author SHA1 Message Date
Francisco 581a99c616 nr,gnb: use memory pool to allocate scheduler UEs 2022-02-15 20:59:45 +01:00
faluco fa351cd285 Rename functions that contain the unsafe word to nolock.
The term "unsafe" does not clearly state that the function is not locking the shared date and it sounds "dangerous", so use a more explicit term.
2021-09-27 13:26:21 +02:00
Francisco Paisana f518861ebc fix location of support/ folder. Created macros for ASSERT_EQ and ASSERT_NEQ 2021-08-23 16:47:54 +02:00
Francisco Paisana 599fc978a5 improvement of srsran_assert design, with specializations to enable/disable assertions based on compile flags other than ASSERTS_ENABLED. Creation of the support/ folder 2021-08-23 16:47:54 +02:00
Francisco cd51537234 add comment explaining the use case of cached_alloc 2021-05-06 18:06:10 +01:00
Francisco 28847badcf implementation of custom allocator for memory caching. This allocator may be used for unbounded queues 2021-05-06 18:06:10 +01:00
Francisco 3c4512cdd2 demote assert to expect check in circular stack pool destruction, when a leak is detected 2021-04-27 19:14:25 +01:00
Francisco f1c67f5b2b pool - avoid concurrent batch allocations in background threads 2021-04-09 12:54:22 +01:00
Francisco 71f1f1b556 enb - log warning when rnti-specific memory block is full 2021-04-09 12:54:22 +01:00
Francisco a890a22ccd enb - rnti memory pool now fallbacks to new/delete if rnti-specific memory block is full 2021-04-09 12:54:22 +01:00
Francisco a780a6a7b6 fix obj pool interface 2021-04-09 12:54:22 +01:00
Francisco 60d5c6df7b implementation of memory pool with individual memory blocks per UE that get accessed via their rnti 2021-04-09 12:54:22 +01:00
Francisco cdf72248f3 Reimplement batch-based background object/memory pool
Main changes:
- addition of pool utilities
- The node size/alignment and batch allocation threshold are now runtime arguments
- object pool and memory pool are not anymore based on the same class.
  The object pool cannot use intrusive free list because it would overwrite the object
  memory
2021-04-07 12:02:22 +01:00
Francisco 62a6d9a8dc fix background memory pool destruction 2021-04-07 12:02:22 +01:00
Francisco b004c2024d integration of object pool in mac::ue for allocation of softbuffers. Definition of common object pool interface class 2021-04-07 12:02:22 +01:00
Francisco 460d7a8f4f fix memory pool test - placed the pool state into a shared_ptr so that the callbacks still have a valid handle when the pool is destroyed 2021-04-07 12:02:22 +01:00
Francisco ec3cd9ffea adt - added background object pool test, and fix existing bugs related to the creation of pools with objects that are too small to be used in free lists 2021-04-07 12:02:22 +01:00
Francisco d1c5b000dc adt - creation of pre-initialized object pool, that leverages the background memory pool allocator 2021-04-07 12:02:22 +01:00
Francisco 2fc2280c3b adt pool - replace uint8_t* for void* to represent memory blocks 2021-04-02 17:40:50 +01:00
Francisco a79ca92020 refactor type storage and pool tests 2021-04-02 17:40:50 +01:00
Francisco cfd24f6a0e gtpu - leverage byte_buffer_pool to store buffered sdus in gtpu 2021-03-29 10:20:55 +01:00
Francisco 60cd7e6cfe adt - improved concurrent fixed memory pool policy to send buffers from thread cache to central cache 2021-03-27 12:21:08 +00:00
Francisco eb38ff43ab fixed size buffer pool bugfix - deleted threads now return the cached memory blocks to the pool shared memory block container 2021-03-27 12:21:08 +00:00
Francisco be771e5c23 performance - use of new concurrent fixed size pool for byte_buffer pool 2021-03-27 12:21:08 +00:00
Francisco e1523692c2 implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing 2021-03-27 12:21:08 +00:00