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