RLC optimization
Two improvements:
- using functions instead of function pointers which enables inlining
- avoid 1 malloc/free per SDU
TODO:
* See if this works in CI (this MR)
- Take a closer look at RLC lists. The code is complex so I am still getting acquainted with it.
Results so far (using rlc benchmark) (UPDATED):
before:
BM_nr_rlc_am_entity/20000 5036721 ns 5036541 ns 138
BM_nr_rlc_am_entity/20000 5032061 ns 5031849 ns 138
BM_nr_rlc_am_entity/20000 5037071 ns 5037056 ns 138
BM_nr_rlc_am_entity/20000 5035472 ns 5035248 ns 138
BM_nr_rlc_am_entity/20000 5032860 ns 5032681 ns 138
BM_nr_rlc_am_entity/20000_mean 5034837 ns 5034675 ns 5
BM_nr_rlc_am_entity/20000_median 5035472 ns 5035248 ns 5
BM_nr_rlc_am_entity/20000_stddev 2267 ns 2315 ns 5
BM_nr_rlc_am_entity/20000_cv 0.05 % 0.05 % 5
after:
BM_nr_rlc_am_entity/20000 4974403 ns 4974202 ns 140
BM_nr_rlc_am_entity/20000 4976705 ns 4976444 ns 140
BM_nr_rlc_am_entity/20000 5004550 ns 5004508 ns 140
BM_nr_rlc_am_entity/20000 4974652 ns 4974460 ns 140
BM_nr_rlc_am_entity/20000 4976447 ns 4976225 ns 140
BM_nr_rlc_am_entity/20000_mean 4981351 ns 4981168 ns 5
BM_nr_rlc_am_entity/20000_median 4976447 ns 4976225 ns 5
BM_nr_rlc_am_entity/20000_stddev 13009 ns 13087 ns 5
BM_nr_rlc_am_entity/20000_cv 0.26 % 0.26 % 5
Edited by Bartosz Podrygajlo