From 57c480a8a3d49fa8d39f045b131c83d82e593a28 Mon Sep 17 00:00:00 2001
From: Sakthivel Velumani <velumani@eurecom.fr>
Date: Tue, 22 Feb 2022 21:09:59 +0530
Subject: [PATCH] Merged the two thread stats into a global one

---
 executables/nr-gnb.c                      | 8 ++------
 openair1/PHY/defs_gNB.h                   | 2 +-
 openair1/SCHED_NR/fapi_nr_l1.c            | 2 ++
 openair1/SCHED_NR/phy_procedures_nr_gNB.c | 5 ++++-
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/executables/nr-gnb.c b/executables/nr-gnb.c
index 7ca416b209..cf48a1c3fd 100644
--- a/executables/nr-gnb.c
+++ b/executables/nr-gnb.c
@@ -300,8 +300,7 @@ void rx_func(void *param) {
 }
 static void dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output) {
   int stroff = 0;
-  stroff += print_meas_log(gNB->phy_proc_tx[0], "L1 Tx processing thread 0", NULL, NULL, output);
-  stroff += print_meas_log(gNB->phy_proc_tx[1], "L1 Tx processing thread 1", NULL, NULL, output+stroff);
+  stroff += print_meas_log(&gNB->phy_proc_tx, "L1 Tx processing", NULL, NULL, output);
   stroff += print_meas_log(&gNB->dlsch_encoding_stats, "DLSCH encoding", NULL, NULL, output+stroff);
   stroff += print_meas_log(&gNB->phy_proc_rx, "L1 Rx processing", NULL, NULL, output+stroff);
   stroff += print_meas_log(&gNB->ul_indication_stats, "UL Indication", NULL, NULL, output+stroff);
@@ -337,8 +336,7 @@ void *nrL1_stats_thread(void *param) {
   fd=fopen("nrL1_stats.log","w");
   AssertFatal(fd!=NULL,"Cannot open nrL1_stats.log\n");
 
-  reset_meas(gNB->phy_proc_tx[0]);
-  reset_meas(gNB->phy_proc_tx[1]);
+  reset_meas(&gNB->phy_proc_tx);
   reset_meas(&gNB->dlsch_encoding_stats);
   reset_meas(&gNB->phy_proc_rx);
   reset_meas(&gNB->ul_indication_stats);
@@ -450,8 +448,6 @@ void init_gNB_Tpool(int inst) {
     processingData_L1tx_t *msgDataTx = (processingData_L1tx_t *)NotifiedFifoData(msgL1Tx);
     init_DLSCH_struct(gNB, msgDataTx);
     memset(msgDataTx->ssb, 0, 64*sizeof(NR_gNB_SSB_t));
-    reset_meas(&msgDataTx->phy_proc_tx);
-    gNB->phy_proc_tx[i] = &msgDataTx->phy_proc_tx;
     pushNotifiedFIFO(gNB->L1_tx_free,msgL1Tx); // to unblock the process in the beginning
   }
 
diff --git a/openair1/PHY/defs_gNB.h b/openair1/PHY/defs_gNB.h
index 7c7d30a6e2..7d5cb285b5 100644
--- a/openair1/PHY/defs_gNB.h
+++ b/openair1/PHY/defs_gNB.h
@@ -856,7 +856,7 @@ typedef struct PHY_VARS_gNB_s {
   /*
   time_stats_t phy_proc;
   */
-  time_stats_t *phy_proc_tx[2];
+  time_stats_t phy_proc_tx;
   time_stats_t phy_proc_rx;
   time_stats_t rx_prach;
   /*
diff --git a/openair1/SCHED_NR/fapi_nr_l1.c b/openair1/SCHED_NR/fapi_nr_l1.c
index 2dbaa738dc..78e722c4b5 100644
--- a/openair1/SCHED_NR/fapi_nr_l1.c
+++ b/openair1/SCHED_NR/fapi_nr_l1.c
@@ -166,6 +166,8 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
       res = pullTpool(gNB->L1_tx_free, gNB->threadPool);
       processingData_L1tx_t *msgTx = (processingData_L1tx_t *)NotifiedFifoData(res);
 
+      merge_meas(&gNB->phy_proc_tx, &msgTx->phy_proc_tx);
+
       msgTx->num_pdsch_slot=0;
       msgTx->num_dl_pdcch=0;
       msgTx->num_ul_pdcch=number_ul_dci_pdu;
diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
index 41f395c090..bc4493cd1c 100644
--- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c
+++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
@@ -134,7 +134,10 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_TX+offset,1);
 
-  if (do_meas==1) start_meas(&msgTx->phy_proc_tx);
+  if (do_meas==1) {
+    reset_meas(&msgTx->phy_proc_tx);
+    start_meas(&msgTx->phy_proc_tx);
+  }
 
   // clear the transmit data array and beam index for the current slot
   for (aa=0; aa<cfg->carrier_config.num_tx_ant.value; aa++) {
-- 
2.26.2