Incorporate ru_stats_thread() stats into nrL1_stats.log
Do not pollute periodic output, and rather print those into nrL1_stats.log. A number of them are already there anyway, so transfer the rest. Note: ru->ifdevice.tx_fhaul is omitted, as we don't have any IF5 split in 5G.
This commit is contained in:
@@ -19,6 +19,9 @@ Ref :
|
|||||||
DL & UL scheduling timing : 17.0
|
DL & UL scheduling timing : 17.0
|
||||||
UL Indication : 1.0
|
UL Indication : 1.0
|
||||||
Slot Indication : 13.0
|
Slot Indication : 13.0
|
||||||
|
feprx : 151.0
|
||||||
|
feptx_ofdm (per port, half_slot) : 57
|
||||||
|
feptx_total : 148
|
||||||
DeviationThreshold :
|
DeviationThreshold :
|
||||||
feprx : 0.25
|
feprx : 0.25
|
||||||
feptx_prec : 0.25
|
feptx_prec : 0.25
|
||||||
@@ -32,3 +35,6 @@ DeviationThreshold :
|
|||||||
DL & UL scheduling timing : 0.25
|
DL & UL scheduling timing : 0.25
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.50
|
Slot Indication : 0.50
|
||||||
|
feprx : 0.25
|
||||||
|
feptx_ofdm (per port, half_slot) : 0.25
|
||||||
|
feptx_total : 0.25
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ Ref :
|
|||||||
DL & UL scheduling timing : 5.0
|
DL & UL scheduling timing : 5.0
|
||||||
UL Indication : 1.0
|
UL Indication : 1.0
|
||||||
Slot Indication : 6.0
|
Slot Indication : 6.0
|
||||||
|
feprx : 44.0
|
||||||
|
feptx_ofdm (per port, half_slot) : 31
|
||||||
|
feptx_total : 58
|
||||||
DeviationThreshold :
|
DeviationThreshold :
|
||||||
feprx : 0.25
|
feprx : 0.25
|
||||||
feptx_prec : 0.25
|
feptx_prec : 0.25
|
||||||
@@ -32,3 +35,6 @@ DeviationThreshold :
|
|||||||
DL & UL scheduling timing : 0.50
|
DL & UL scheduling timing : 0.50
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.50
|
Slot Indication : 0.50
|
||||||
|
feprx : 0.25
|
||||||
|
feptx_ofdm (per port, half_slot) : 0.25
|
||||||
|
feptx_total : 0.25
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ Ref :
|
|||||||
DL & UL scheduling timing : 8.0
|
DL & UL scheduling timing : 8.0
|
||||||
UL Indication : 3.0
|
UL Indication : 3.0
|
||||||
Slot Indication : 9.0
|
Slot Indication : 9.0
|
||||||
|
feprx : 85.0
|
||||||
|
feptx_ofdm (per port, half_slot) : 31
|
||||||
|
feptx_total : 92
|
||||||
DeviationThreshold :
|
DeviationThreshold :
|
||||||
feprx : 0.25
|
feprx : 0.25
|
||||||
feptx_prec : 0.25
|
feptx_prec : 0.25
|
||||||
@@ -32,3 +35,6 @@ DeviationThreshold :
|
|||||||
DL & UL scheduling timing : 0.35
|
DL & UL scheduling timing : 0.35
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.35
|
Slot Indication : 0.35
|
||||||
|
feprx : 0.25
|
||||||
|
feptx_ofdm (per port, half_slot) : 0.25
|
||||||
|
feptx_total : 0.25
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ Ref :
|
|||||||
DL & UL scheduling timing : 4.0
|
DL & UL scheduling timing : 4.0
|
||||||
UL Indication : 2.0
|
UL Indication : 2.0
|
||||||
Slot Indication : 5.0
|
Slot Indication : 5.0
|
||||||
|
feprx : 43.0
|
||||||
|
feptx_ofdm (per port, half_slot) : 30
|
||||||
|
feptx_total : 57
|
||||||
DeviationThreshold :
|
DeviationThreshold :
|
||||||
feprx : 0.25
|
feprx : 0.25
|
||||||
feptx_prec : 0.25
|
feptx_prec : 0.25
|
||||||
@@ -32,3 +35,6 @@ DeviationThreshold :
|
|||||||
DL & UL scheduling timing : 0.50
|
DL & UL scheduling timing : 0.50
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.50
|
Slot Indication : 0.50
|
||||||
|
feprx : 0.25
|
||||||
|
feptx_ofdm (per port, half_slot) : 0.25
|
||||||
|
feptx_total : 0.25
|
||||||
|
|||||||
+14
-2
@@ -239,14 +239,26 @@ static size_t dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output, size
|
|||||||
if (ru->feprx)
|
if (ru->feprx)
|
||||||
output += print_meas_log(&ru->ofdm_demod_stats, "feprx", NULL, NULL, output, end - output);
|
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) {
|
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) {
|
if (ru->feptx_ofdm) {
|
||||||
output += print_meas_log(&ru->txdataF_copy_stats,"txdataF_copy",NULL,NULL, output, end - output);
|
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->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)
|
if (ru->fh_north_asynch_in)
|
||||||
|
|||||||
@@ -992,36 +992,6 @@ int setup_RU_buffers(RU_t *ru)
|
|||||||
return(0);
|
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)
|
void ru_tx_func(void *param)
|
||||||
{
|
{
|
||||||
processingData_RU_t *info = (processingData_RU_t *) param;
|
processingData_RU_t *info = (processingData_RU_t *) param;
|
||||||
@@ -1399,8 +1369,6 @@ void init_RU_proc(RU_t *ru) {
|
|||||||
|
|
||||||
if(emulate_rf)
|
if(emulate_rf)
|
||||||
threadCreate( &proc->pthread_emulateRF, emulatedRF_thread, (void *)proc, "emulateRF", -1, OAI_PRIORITY_RT );
|
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]);
|
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_mutex_unlock( &proc->mutex_fep[0] );
|
||||||
pthread_join(proc->pthread_FH, NULL);
|
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
|
// everything should be stopped now, we can safely stop the RF device
|
||||||
if (ru->stop_rf == NULL) {
|
if (ru->stop_rf == NULL) {
|
||||||
LOG_W(PHY, "No stop_rf() for RU %d defined, cannot stop RF!\n", ru->idx);
|
LOG_W(PHY, "No stop_rf() for RU %d defined, cannot stop RF!\n", ru->idx);
|
||||||
|
|||||||
Reference in New Issue
Block a user