feat(nrL1_stats): Reduce overhead

* less sorted lists
This commit is contained in:
Romain Beurdouche
2026-04-27 15:38:05 +00:00
parent 0b97ef2057
commit c89dee6382

View File

@@ -273,51 +273,15 @@ static size_t dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output, size
reset_meas(&gNB->l1_rx_proc);
reset_meas(&gNB->phy_proc_tx);
reset_meas(&gNB->dlsch_encoding_stats);
reset_meas(&gNB->dlsch_segmentation_stats);
reset_meas(&gNB->tinput);
reset_meas(&gNB->tprep);
reset_meas(&gNB->tparity);
reset_meas(&gNB->toutput);
reset_meas(&gNB->dlsch_rate_matching_stats);
reset_meas(&gNB->dlsch_interleaving_stats);
reset_meas(&gNB->dlsch_scrambling_stats);
reset_meas(&gNB->dlsch_modulation_stats);
reset_meas(&gNB->dlsch_resource_mapping_stats);
reset_meas(&gNB->dlsch_pdsch_generation_stats);
reset_meas(&gNB->phy_proc_rx);
reset_meas(&gNB->ulsch_decoding_stats);
reset_meas(&gNB->ts_deinterleave);
reset_meas(&gNB->ts_rate_unmatch);
reset_meas(&gNB->ts_ldpc_decode);
reset_meas(&gNB->ul_indication_stats);
reset_meas(&gNB->slot_indication_stats);
reset_meas(&gNB->rx_pusch_stats);
reset_meas(&gNB->rx_prach);
if (ru->feprx) {
reset_meas(&ru->ofdm_demod_stats);
}
if (ru->feptx_prec) {
reset_meas(&ru->precoding_stats);
}
if (ru->feptx_ofdm) {
reset_meas(&ru->txdataF_copy_stats);
reset_meas(&ru->ofdm_mod_stats);
reset_meas(&ru->ofdm_total_stats);
reset_meas(&ru->txdataF_copy_stats);
}
if (ru->fh_north_asynch_in) {
reset_meas(&ru->rx_fhaul);
}
reset_meas(&ru->tx_fhaul);
if (ru->fh_north_out) {
reset_meas(&ru->compression);
reset_meas(&ru->transport);
}
}
return output - begin;
}
@@ -340,44 +304,15 @@ void *nrL1_stats_thread(void *param) {
init_sorted_list_meas(&gNB->l1_rx_proc, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->phy_proc_tx, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->dlsch_encoding_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->tinput, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->tprep, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->tparity, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->toutput, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->dlsch_segmentation_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->dlsch_rate_matching_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->dlsch_interleaving_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->dlsch_scrambling_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->dlsch_modulation_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->dlsch_pdsch_generation_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->phy_proc_rx, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->ulsch_decoding_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->ts_deinterleave, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->ts_rate_unmatch, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->ts_ldpc_decode, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->ul_indication_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->slot_indication_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->rx_pusch_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&gNB->rx_prach, SORTED_LIST_SIZE);
if (ru->feprx) {
init_sorted_list_meas(&ru->ofdm_demod_stats, SORTED_LIST_SIZE);
}
if (ru->feptx_prec) {
init_sorted_list_meas(&ru->precoding_stats, SORTED_LIST_SIZE);
}
if (ru->feptx_ofdm) {
init_sorted_list_meas(&ru->txdataF_copy_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&ru->ofdm_mod_stats, SORTED_LIST_SIZE);
init_sorted_list_meas(&ru->ofdm_total_stats, SORTED_LIST_SIZE);
}
if (ru->fh_north_asynch_in) {
init_sorted_list_meas(&ru->rx_fhaul, SORTED_LIST_SIZE);
}
init_sorted_list_meas(&ru->tx_fhaul, SORTED_LIST_SIZE);
if (ru->fh_north_out) {
init_sorted_list_meas(&ru->compression, SORTED_LIST_SIZE);
init_sorted_list_meas(&ru->transport, SORTED_LIST_SIZE);
}
}
reset_meas(&gNB->l1_tx_proc);
@@ -443,46 +378,15 @@ void *nrL1_stats_thread(void *param) {
free_sorted_list_meas(&gNB->l1_rx_proc);
free_sorted_list_meas(&gNB->phy_proc_tx);
free_sorted_list_meas(&gNB->dlsch_encoding_stats);
free_sorted_list_meas(&gNB->dlsch_segmentation_stats);
free_sorted_list_meas(&gNB->tinput);
free_sorted_list_meas(&gNB->tprep);
free_sorted_list_meas(&gNB->tparity);
free_sorted_list_meas(&gNB->toutput);
free_sorted_list_meas(&gNB->dlsch_rate_matching_stats);
free_sorted_list_meas(&gNB->dlsch_interleaving_stats);
free_sorted_list_meas(&gNB->dlsch_scrambling_stats);
free_sorted_list_meas(&gNB->dlsch_modulation_stats);
free_sorted_list_meas(&gNB->dlsch_pdsch_generation_stats);
free_sorted_list_meas(&gNB->phy_proc_rx);
free_sorted_list_meas(&gNB->ulsch_decoding_stats);
free_sorted_list_meas(&gNB->ts_deinterleave);
free_sorted_list_meas(&gNB->ts_rate_unmatch);
free_sorted_list_meas(&gNB->ts_ldpc_decode);
free_sorted_list_meas(&gNB->ul_indication_stats);
free_sorted_list_meas(&gNB->slot_indication_stats);
free_sorted_list_meas(&gNB->rx_pusch_stats);
free_sorted_list_meas(&gNB->rx_prach);
if (ru->feprx) {
free_sorted_list_meas(&ru->ofdm_demod_stats);
}
if (ru->feptx_prec) {
free_sorted_list_meas(&ru->precoding_stats);
}
if (ru->feptx_ofdm) {
free_sorted_list_meas(&ru->txdataF_copy_stats);
free_sorted_list_meas(&ru->ofdm_mod_stats);
free_sorted_list_meas(&ru->ofdm_total_stats);
free_sorted_list_meas(&ru->txdataF_copy_stats);
}
if (ru->fh_north_asynch_in) {
free_sorted_list_meas(&ru->rx_fhaul);
}
free_sorted_list_meas(&ru->tx_fhaul);
if (ru->fh_north_out) {
free_sorted_list_meas(&ru->compression);
free_sorted_list_meas(&ru->transport);
}
}
fclose(fd);