Skip to content

A testsuite and a benchmark for RLC AM mode

Bartosz Podrygajlo requested to merge rlc-benchmark into develop

Introduce two tests for NR RLC AM entity:

  • test_nr_rlc_am_entity
  • benchmark_nr_rlc_am_entity

The benchmark can be used to verify processing time improvements for NR RLC AM entity. The benchmark creates two entities and creates an unbalanced communication channel between them with 10% loss packet loss and 100:1 PDU sent ratio. This allows the lists in RLC to build up and triggers RLC AM code related to looking through the segment/pdu lists.

Example benchmark output:

ubuntu@zeus:~/bpodrygajlo/openairinterface5g/cmake_targets/build$ ./openair2/LAYER2/nr_rlc/tests/benchmark_nr_rlc_am_entity
[LOG] init aborted, configuration couldn't be performed
log init done
CMDLINE: "./openair2/LAYER2/nr_rlc/tests/benchmark_nr_rlc_am_entity" 
[CONFIG] debug flags: 0x00400000
2024-10-16T14:58:20+02:00
Running ./openair2/LAYER2/nr_rlc/tests/benchmark_nr_rlc_am_entity
Run on (8 X 4700 MHz CPU s)
CPU Caches:
  L1 Data 48 KiB (x4)
  L1 Instruction 32 KiB (x4)
  L2 Unified 1280 KiB (x4)
  L3 Unified 12288 KiB (x1)
Load Average: 0.48, 0.27, 0.20
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------
Benchmark                          Time             CPU   Iterations
--------------------------------------------------------------------
BM_nr_rlc_am_entity/100        50096 ns        50097 ns        13101
BM_nr_rlc_am_entity/256       140386 ns       140387 ns         4868
BM_nr_rlc_am_entity/1024      536323 ns       536311 ns         1309
BM_nr_rlc_am_entity/4096     2084464 ns      2084385 ns          338
BM_nr_rlc_am_entity/16384    8309318 ns      8309458 ns           81
BM_nr_rlc_am_entity/20000    9843792 ns      9843774 ns           68

Merge request reports