Commit Graph

81 Commits

Author SHA1 Message Date
Francisco 581a99c616 nr,gnb: use memory pool to allocate scheduler UEs 2022-02-15 20:59:45 +01:00
Francisco a2174a5714 Fix type storage copy and move assignment function helper
Previously, in the case both the lhs and rhs optionals were present, the copy/move assignments were erroneously destroying the lhs object.
2022-02-15 16:50:21 +01:00
Francisco 9a4a5345c4 nr,gnb,sched: improve sched sanity checks, and improve bwp_pdcch_allocator api 2021-12-07 12:30:39 +00:00
Francisco 6df8b6bb9e nr,gnb,sched: account for CORESET RB offset in the DCI RB indexing in case of common search spaces 2021-11-25 15:14:18 +00:00
faluco 453a7760b3 Port misc SSN changes to dev. 2021-11-16 14:46:51 +01:00
Francisco 9734f2e393 adt: fix optional_vector ctor, and add emplace method 2021-11-05 16:13:09 +00:00
Francisco ea324e8cbe nr,sched,test: update sched nr test to better reflect MAC-PHY FAPI 2021-10-14 19:27:52 +01:00
Francisco Paisana cbb709d4e3 sched,nr: function to log UEs buffer status before scheduling decision, fix const_iterator of circular_map 2021-09-27 15:43:16 +02: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
faluco cf20b143c0 Fix the default constructor of the optional class to avoid a spurious uninitialized value warning in older GCC versions (seen for ARM32 and GCC 8.3).
Use a union of a byte and the real storage, and init the char by default.
2021-09-14 11:22:40 +02:00
Francisco Paisana 55d83a1279 fix compilation issue due to wrong include path for srsran_assert.h file 2021-08-24 12:06:24 +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 Paisana e896ac49e8 adt: create split optional span view to be used for C-array types 2021-08-20 14:30:19 +02:00
Francisco Paisana d616e46936 adt: allow choice between static and dynamic optional vector types 2021-08-20 14:30:19 +02:00
Francisco Paisana 1596fcf349 adt: rename optional table to optional array 2021-08-20 14:30:19 +02:00
Francisco Paisana 8c24cfebd3 adt: create data structure type to represent an array of optional fields 2021-08-20 14:30:19 +02:00
Francisco 78acf81cf0 bugfix,sched: avoid instability in TPCs around PHR~0 2021-06-21 17:35:24 +01:00
Pedro Alvarez 997f7db23a Small fixes for observer.h missing std::size_t 2021-05-26 22:16:22 +02:00
Francisco 8df6ed07c6 sched small fixes - use 0.930 instead of 0.932 for max coderate. Allow computing mcs/tbs based on max coderate directly. Other small fixes 2021-05-24 17:25:07 +02:00
Francisco 31936c9754 bugfix - printf formatting incorrect in bounded_bitset method 2021-05-24 17:24:50 +02:00
Francisco b093576634 avoid sending UEContextReleaseRequest from Source eNB during S1 Handover. 2021-05-24 17:24:31 +02:00
Francisco fa34aaa16e ensure the DL mask count is reduced enough to fit required bytes 2021-05-14 19:58:03 +01:00
Francisco b54bb35343 use rnti_map_t in scheduler 2021-05-07 10:58:04 +01: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
Andre Puschmann 92d4e6e746 adt/common: remove const from return type
reported by LGTM https://lgtm.com/projects/g/srsLTE/srsLTE/rev/pr-9ae46cae260b6b8137b34b9423bf1477bd6b5c42
2021-04-25 21:03:53 +02:00
faluco 7df308c756 Remove two mallocs in the stack:
1) Extend the small buffer to 64bytes for the move_callback class.
2) Replace a std::map for a fixed size circular map in sched_time_pf.
2021-04-21 15:05:48 +02:00
Francisco 63913ff2b2 remove uneeded assert condition. change pdcp log when notified pdcp pdu doesnt exist to info. 2021-04-20 16:27:40 +01:00
Francisco 9efb959471 bugfix, scheduler - fix bit counter specializations for 32 and 64 bits. 2021-04-20 14:01:19 +01:00
Francisco ac375f07d9 add precompiler guards to restrict builtin use to gcc and clang 2021-04-19 13:31:20 +01:00
Francisco 22024ac35d implemented bounded_bitset::find_lowest(...) for both reverse and non-reverse bit ordering. Applied this method to UL scheduling search for PRB intervals 2021-04-19 13:31:20 +01:00
Francisco 3f15fc2811 implemented bounded_bitset::find_first(...) 2021-04-19 13:31:20 +01:00
Francisco c3ec28002b refactor - integration of segment list in rlc_amd_tx_pdu and pdcp_pdu_info classes 2021-04-16 13:54:10 +01:00
Francisco 1f1233782f timers - fix old gcc compilation issue. Changed free list to intrusive list. 2021-04-15 18:46:42 +01:00
Francisco e37968410e simplification of timers handler design, relying solely on one time wheel. 2021-04-15 18:46:42 +01:00
Francisco 60896e30b5 implementation of time wheel-based timer handler, using a circular array and intrusive list 2021-04-15 18:46:42 +01:00
Francisco 49bd895e29 s1ap - handle invalid or repeated erab ids in s1ap erab release command 2021-04-12 22:07:26 +01:00
Francisco 437db3af03 forbid allocations when dispatching task to thread pool 2021-04-10 15:03:38 +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 ebbb74e639 rlc am - use of circular_map container in RLC AM window
The window elements are not being correctly cleaned up when clear() is called
or when overwritten by newer SN. Furthermore, the window count member is not being
correctly updated when the insertion of a newer SN overwrites the previous one.

I used the circular_map container to avoid this sort of bugs
2021-04-08 20:11:15 +01:00
Francisco b7d4a72ea1 adt - fix circular map clear() and erase(it) functions 2021-04-07 22:26:42 +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