Skip to content

RLC optimization

Bartosz Podrygajlo requested to merge rlc-optimization into develop

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

Merge request reports