diff --git a/ci-scripts/datalog_rt_stats.100.2x2.yaml b/ci-scripts/datalog_rt_stats.100.2x2.yaml index 024dfa8e9e..7c5cb48add 100644 --- a/ci-scripts/datalog_rt_stats.100.2x2.yaml +++ b/ci-scripts/datalog_rt_stats.100.2x2.yaml @@ -19,6 +19,9 @@ Ref : DL & UL scheduling timing : 17.0 UL Indication : 1.0 Slot Indication : 13.0 + feprx : 151.0 + feptx_ofdm (per port, half_slot) : 57 + feptx_total : 148 DeviationThreshold : feprx : 0.25 feptx_prec : 0.25 @@ -32,3 +35,6 @@ DeviationThreshold : DL & UL scheduling timing : 0.25 UL Indication : 1.00 Slot Indication : 0.50 + feprx : 0.25 + feptx_ofdm (per port, half_slot) : 0.25 + feptx_total : 0.25 diff --git a/ci-scripts/datalog_rt_stats.1x1.60.yaml b/ci-scripts/datalog_rt_stats.1x1.60.yaml index 85075bac97..5e0564977b 100644 --- a/ci-scripts/datalog_rt_stats.1x1.60.yaml +++ b/ci-scripts/datalog_rt_stats.1x1.60.yaml @@ -19,6 +19,9 @@ Ref : DL & UL scheduling timing : 5.0 UL Indication : 1.0 Slot Indication : 6.0 + feprx : 44.0 + feptx_ofdm (per port, half_slot) : 31 + feptx_total : 58 DeviationThreshold : feprx : 0.25 feptx_prec : 0.25 @@ -32,3 +35,6 @@ DeviationThreshold : DL & UL scheduling timing : 0.50 UL Indication : 1.00 Slot Indication : 0.50 + feprx : 0.25 + feptx_ofdm (per port, half_slot) : 0.25 + feptx_total : 0.25 diff --git a/ci-scripts/datalog_rt_stats.60.2x2.yaml b/ci-scripts/datalog_rt_stats.60.2x2.yaml index b371356971..7352136764 100644 --- a/ci-scripts/datalog_rt_stats.60.2x2.yaml +++ b/ci-scripts/datalog_rt_stats.60.2x2.yaml @@ -19,6 +19,9 @@ Ref : DL & UL scheduling timing : 8.0 UL Indication : 3.0 Slot Indication : 9.0 + feprx : 85.0 + feptx_ofdm (per port, half_slot) : 31 + feptx_total : 92 DeviationThreshold : feprx : 0.25 feptx_prec : 0.25 @@ -32,3 +35,6 @@ DeviationThreshold : DL & UL scheduling timing : 0.35 UL Indication : 1.00 Slot Indication : 0.35 + feprx : 0.25 + feptx_ofdm (per port, half_slot) : 0.25 + feptx_total : 0.25 diff --git a/ci-scripts/datalog_rt_stats.default.yaml b/ci-scripts/datalog_rt_stats.default.yaml index 32977944a0..be3f8b277e 100644 --- a/ci-scripts/datalog_rt_stats.default.yaml +++ b/ci-scripts/datalog_rt_stats.default.yaml @@ -19,6 +19,9 @@ Ref : DL & UL scheduling timing : 4.0 UL Indication : 2.0 Slot Indication : 5.0 + feprx : 43.0 + feptx_ofdm (per port, half_slot) : 30 + feptx_total : 57 DeviationThreshold : feprx : 0.25 feptx_prec : 0.25 @@ -32,3 +35,6 @@ DeviationThreshold : DL & UL scheduling timing : 0.50 UL Indication : 1.00 Slot Indication : 0.50 + feprx : 0.25 + feptx_ofdm (per port, half_slot) : 0.25 + feptx_total : 0.25 diff --git a/executables/nr-gnb.c b/executables/nr-gnb.c index acab30751b..af2dede07f 100644 --- a/executables/nr-gnb.c +++ b/executables/nr-gnb.c @@ -239,14 +239,26 @@ static size_t dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output, size if (ru->feprx) output += print_meas_log(&ru->ofdm_demod_stats, "feprx", NULL, NULL, output, end - output); + bool full_slot = ru->half_slot_parallelization == 0; if (ru->feptx_prec) { - output += print_meas_log(&ru->precoding_stats,"feptx_prec",NULL,NULL, output, end - output); + output += print_meas_log(&ru->precoding_stats, + full_slot ? "feptx_prec (per port)" : "feptx_prec (per port, half_slot)", + NULL, + NULL, + output, + end - output); } if (ru->feptx_ofdm) { output += print_meas_log(&ru->txdataF_copy_stats,"txdataF_copy",NULL,NULL, output, end - output); - output += print_meas_log(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL, output, end - output); + output += print_meas_log(&ru->ofdm_mod_stats, + full_slot ? "feptx_ofdm (per port)" : "feptx_ofdm (per port, half_slot)", + NULL, + NULL, + output, + end - output); output += print_meas_log(&ru->ofdm_total_stats,"feptx_total",NULL,NULL, output, end - output); + output += print_meas_log(&ru->txdataF_copy_stats, "txdataF_copy", NULL, NULL, output, end - output); } if (ru->fh_north_asynch_in) diff --git a/executables/nr-ru.c b/executables/nr-ru.c index 411caf9a63..21fff0cd5a 100644 --- a/executables/nr-ru.c +++ b/executables/nr-ru.c @@ -992,36 +992,6 @@ int setup_RU_buffers(RU_t *ru) return(0); } -void *ru_stats_thread(void *param) { - RU_t *ru = (RU_t *)param; - wait_sync("ru_stats_thread"); - - while (!oai_exit) { - sleep(1); - - if (cpu_meas_enabled) { - if (ru->feprx) print_meas(&ru->ofdm_demod_stats,"feprx (all ports)",NULL,NULL); - - if (ru->feptx_ofdm) { - print_meas(&ru->precoding_stats,(ru->half_slot_parallelization==0)?"feptx_prec (per port)":"feptx_prec (per port, half_slot)",NULL,NULL); - print_meas(&ru->ofdm_mod_stats,(ru->half_slot_parallelization==0)?"feptx_ofdm (per port)":"feptx_ofdm (per port, half_slot)",NULL,NULL); - print_meas(&ru->txdataF_copy_stats,"txdataF_copy",NULL,NULL); - print_meas(&ru->ofdm_total_stats,"feptx_total",NULL,NULL); - } - print_meas(&ru->rx_fhaul,"rx_fhaul",NULL,NULL); - if (ru->if_south == REMOTE_IF5) print_meas(&ru->ifdevice.tx_fhaul,"tx_fhaul (IF5)",NULL,NULL); - else print_meas(&ru->tx_fhaul,"tx_fhaul",NULL,NULL); - - if (ru->fh_north_out) { - print_meas(&ru->compression,"compression",NULL,NULL); - print_meas(&ru->transport,"transport",NULL,NULL); - } - } - } - - return(NULL); -} - void ru_tx_func(void *param) { processingData_RU_t *info = (processingData_RU_t *) param; @@ -1399,8 +1369,6 @@ void init_RU_proc(RU_t *ru) { if(emulate_rf) threadCreate( &proc->pthread_emulateRF, emulatedRF_thread, (void *)proc, "emulateRF", -1, OAI_PRIORITY_RT ); - if (cpu_meas_enabled) - threadCreate(&ru->ru_stats_thread, ru_stats_thread, (void *)ru, "ru_stats", -1, OAI_PRIORITY_RT); LOG_I(PHY, "Initialized RU proc %d (%s,%s),\n", ru->idx, NB_functions[ru->function], NB_timing[ru->if_timing]); } @@ -1430,11 +1398,6 @@ void kill_NR_RU_proc(int inst) { pthread_mutex_unlock( &proc->mutex_fep[0] ); pthread_join(proc->pthread_FH, NULL); - if (cpu_meas_enabled) { - LOG_D(PHY, "Joining ru_stats_thread\n"); - pthread_join(ru->ru_stats_thread, NULL); - } - // everything should be stopped now, we can safely stop the RF device if (ru->stop_rf == NULL) { LOG_W(PHY, "No stop_rf() for RU %d defined, cannot stop RF!\n", ru->idx);