From 362bc481bd4f80c1d795d354b4b0737b26b98e61 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 7 Feb 2024 17:46:15 +0100 Subject: [PATCH] Remove misleading PUSCH decoding PUSCH decoding is started multiple times in nr_ulsch_procedures() for each ULSCH segment, and stopped once inside phy_procedures_gNB_uespec_RX(). Not only is it not clear if that works with the API, it also might measure more than just PUSCH decoding. Remove the PUSCH decoding, it is misleading. Check L1 RX processing instead. --- ci-scripts/datalog_rt_stats.100.2x2.yaml | 2 -- ci-scripts/datalog_rt_stats.1x1.60.yaml | 2 -- ci-scripts/datalog_rt_stats.2x2.yaml | 2 -- ci-scripts/datalog_rt_stats.60.2x2.yaml | 2 -- ci-scripts/datalog_rt_stats.default.yaml | 2 -- ci-scripts/stats_monitor_conf.yaml | 2 -- executables/nr-gnb.c | 2 -- openair1/PHY/defs_gNB.h | 1 - openair1/SCHED_NR/phy_procedures_nr_gNB.c | 2 -- openair1/SIMULATION/NR_PHY/ulsim.c | 2 -- 10 files changed, 19 deletions(-) diff --git a/ci-scripts/datalog_rt_stats.100.2x2.yaml b/ci-scripts/datalog_rt_stats.100.2x2.yaml index 5941e75916..e6c6a374e9 100644 --- a/ci-scripts/datalog_rt_stats.100.2x2.yaml +++ b/ci-scripts/datalog_rt_stats.100.2x2.yaml @@ -15,7 +15,6 @@ Ref : DLSCH encoding : 179.0 L1 Rx processing : 526.0 PUSCH inner-receiver : 400.0 - PUSCH decoding : 2000.0 Schedule Response : 1.0 DL & UL scheduling timing : 15.0 UL Indication : 1.0 @@ -29,7 +28,6 @@ DeviationThreshold : DLSCH encoding : 0.25 L1 Rx processing : 0.25 PUSCH inner-receiver : 0.25 - PUSCH decoding : 0.25 Schedule Response : 0.25 DL & UL scheduling timing : 0.25 UL Indication : 0.25 diff --git a/ci-scripts/datalog_rt_stats.1x1.60.yaml b/ci-scripts/datalog_rt_stats.1x1.60.yaml index 5e2bf90943..09a2980688 100644 --- a/ci-scripts/datalog_rt_stats.1x1.60.yaml +++ b/ci-scripts/datalog_rt_stats.1x1.60.yaml @@ -15,7 +15,6 @@ Ref : DLSCH encoding : 137.0 L1 Rx processing : 345.0 PUSCH inner-receiver : 210.0 - PUSCH decoding : 2200.0 Schedule Response : 48.0 DL & UL scheduling timing : 13.0 UL Indication : 3.0 @@ -29,7 +28,6 @@ DeviationThreshold : DLSCH encoding : 0.25 L1 Rx processing : 0.25 PUSCH inner-receiver : 0.25 - PUSCH decoding : 0.25 Schedule Response : 0.25 DL & UL scheduling timing : 0.25 UL Indication : 0.25 diff --git a/ci-scripts/datalog_rt_stats.2x2.yaml b/ci-scripts/datalog_rt_stats.2x2.yaml index f99e09737f..99a442c80a 100644 --- a/ci-scripts/datalog_rt_stats.2x2.yaml +++ b/ci-scripts/datalog_rt_stats.2x2.yaml @@ -15,7 +15,6 @@ Ref : DLSCH encoding : 230.0 L1 Rx processing : 175.0 PUSCH inner-receiver : 100.0 - PUSCH decoding : 180.0 Schedule Response : 111.0 DL & UL scheduling timing : 37.0 UL Indication : 3.0 @@ -29,7 +28,6 @@ DeviationThreshold : DLSCH encoding : 0.25 L1 Rx processing : 0.25 PUSCH inner-receiver : 0.25 - PUSCH decoding : 0.25 Schedule Response : 0.25 DL & UL scheduling timing : 0.25 UL Indication : 0.25 diff --git a/ci-scripts/datalog_rt_stats.60.2x2.yaml b/ci-scripts/datalog_rt_stats.60.2x2.yaml index 66d01f859d..d352f8ab28 100644 --- a/ci-scripts/datalog_rt_stats.60.2x2.yaml +++ b/ci-scripts/datalog_rt_stats.60.2x2.yaml @@ -15,7 +15,6 @@ Ref : DLSCH encoding : 177.0 L1 Rx processing : 345.0 PUSCH inner-receiver : 210.0 - PUSCH decoding : 2200.0 Schedule Response : 111.0 DL & UL scheduling timing : 20.0 UL Indication : 5.0 @@ -29,7 +28,6 @@ DeviationThreshold : DLSCH encoding : 0.25 L1 Rx processing : 0.25 PUSCH inner-receiver : 0.25 - PUSCH decoding : 0.25 Schedule Response : 0.25 DL & UL scheduling timing : 0.25 UL Indication : 0.25 diff --git a/ci-scripts/datalog_rt_stats.default.yaml b/ci-scripts/datalog_rt_stats.default.yaml index 73a5f82232..e19833434d 100644 --- a/ci-scripts/datalog_rt_stats.default.yaml +++ b/ci-scripts/datalog_rt_stats.default.yaml @@ -15,7 +15,6 @@ Ref : DLSCH encoding : 118.0 L1 Rx processing : 305.0 PUSCH inner-receiver : 150.0 - PUSCH decoding : 2200.0 Schedule Response : 30.0 DL & UL scheduling timing : 10.0 UL Indication : 3.0 @@ -29,7 +28,6 @@ DeviationThreshold : DLSCH encoding : 0.25 L1 Rx processing : 0.25 PUSCH inner-receiver : 0.25 - PUSCH decoding : 0.25 Schedule Response : 0.25 DL & UL scheduling timing : 0.25 UL Indication : 0.25 diff --git a/ci-scripts/stats_monitor_conf.yaml b/ci-scripts/stats_monitor_conf.yaml index e61608a63c..15a93abc6c 100644 --- a/ci-scripts/stats_monitor_conf.yaml +++ b/ci-scripts/stats_monitor_conf.yaml @@ -24,7 +24,6 @@ gnb : DLSCH encoding: L1 Rx processing: PUSCH inner-receiver: - PUSCH decoding: DL & UL scheduling timing: UL Indication: Slot Indication: @@ -45,7 +44,6 @@ gnb : rt.L1 Rx processing: page4: rt.PUSCH inner-receiver: - rt.PUSCH decoding: rt.DL & UL scheduling timing: rt.UL Indication: rt.Slot Indication: diff --git a/executables/nr-gnb.c b/executables/nr-gnb.c index e2864b9320..e7f92a054c 100644 --- a/executables/nr-gnb.c +++ b/executables/nr-gnb.c @@ -297,7 +297,6 @@ static size_t dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output, size output += print_meas_log(&gNB->ul_indication_stats, "UL Indication", NULL, NULL, output, end - output); output += print_meas_log(&gNB->slot_indication_stats, "Slot Indication", NULL, NULL, output, end - output); output += print_meas_log(&gNB->rx_pusch_stats, "PUSCH inner-receiver", NULL, NULL, output, end - output); - output += print_meas_log(&gNB->ulsch_decoding_stats, "PUSCH decoding", NULL, NULL, output, end - output); output += print_meas_log(&gNB->schedule_response_stats, "Schedule Response", NULL, NULL, output, end - output); output += print_meas_log(&gNB->rx_prach, "PRACH RX", NULL, NULL, output, end - output); if (ru->feprx) @@ -341,7 +340,6 @@ void *nrL1_stats_thread(void *param) { reset_meas(&gNB->ul_indication_stats); reset_meas(&gNB->slot_indication_stats); reset_meas(&gNB->rx_pusch_stats); - reset_meas(&gNB->ulsch_decoding_stats); reset_meas(&gNB->schedule_response_stats); reset_meas(&gNB->dlsch_scrambling_stats); reset_meas(&gNB->dlsch_modulation_stats); diff --git a/openair1/PHY/defs_gNB.h b/openair1/PHY/defs_gNB.h index e437024521..c4ef28bc0b 100644 --- a/openair1/PHY/defs_gNB.h +++ b/openair1/PHY/defs_gNB.h @@ -693,7 +693,6 @@ typedef struct PHY_VARS_gNB_s { time_stats_t ul_indication_stats; time_stats_t slot_indication_stats; time_stats_t schedule_response_stats; - time_stats_t ulsch_decoding_stats; time_stats_t ulsch_ldpc_decoding_stats; time_stats_t ulsch_deinterleaving_stats; time_stats_t ulsch_channel_estimation_stats; diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c index 26cfbaa034..2c8935f007 100644 --- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c +++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c @@ -401,7 +401,6 @@ static int nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int //--------------------- ULSCH decoding --------------------- //---------------------------------------------------------- - start_meas(&gNB->ulsch_decoding_stats); int nbDecode = nr_ulsch_decoding(gNB, ULSCH_id, gNB->pusch_vars[ULSCH_id].llr, frame_parms, pusch_pdu, frame_rx, slot_rx, harq_pid, G); @@ -949,7 +948,6 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) delNotifiedFIFO_elt(req); totalDecode--; } - stop_meas(&gNB->ulsch_decoding_stats); for (int i = 0; i < gNB->max_nb_srs; i++) { NR_gNB_SRS_t *srs = &gNB->srs[i]; if (srs) { diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c index 05e8fa8e22..0e64d837e0 100644 --- a/openair1/SIMULATION/NR_PHY/ulsim.c +++ b/openair1/SIMULATION/NR_PHY/ulsim.c @@ -922,7 +922,6 @@ int main(int argc, char *argv[]) reset_meas(&gNB->rx_pusch_stats); reset_meas(&gNB->rx_pusch_init_stats); reset_meas(&gNB->rx_pusch_symbol_processing_stats); - reset_meas(&gNB->ulsch_decoding_stats); reset_meas(&gNB->ulsch_channel_estimation_stats); reset_meas(&UE->ulsch_ldpc_encoding_stats); reset_meas(&UE->ulsch_rate_matching_stats); @@ -1547,7 +1546,6 @@ int main(int argc, char *argv[]) printStatIndent2(&gNB->ulsch_channel_estimation_stats, "ULSCH channel estimation time"); printStatIndent2(&gNB->rx_pusch_init_stats, "RX PUSCH Initialization time"); printStatIndent2(&gNB->rx_pusch_symbol_processing_stats, "RX PUSCH Symbol Processing time"); - printStatIndent(&gNB->ulsch_decoding_stats,"ULSCH total decoding time"); printf("\nUE TX\n"); printStatIndent(&UE->ulsch_encoding_stats,"ULSCH total encoding time");