Commit 9e7cd214 authored by Thomas Schlichter's avatar Thomas Schlichter

gNB: remove old and unused rt_profiling.h

parent cdaa9616
...@@ -2541,7 +2541,6 @@ INPUT = \ ...@@ -2541,7 +2541,6 @@ INPUT = \
@CMAKE_CURRENT_SOURCE_DIR@/../executables/create_tasks_ue.c \ @CMAKE_CURRENT_SOURCE_DIR@/../executables/create_tasks_ue.c \
@CMAKE_CURRENT_SOURCE_DIR@/../executables/create_tasks.h \ @CMAKE_CURRENT_SOURCE_DIR@/../executables/create_tasks.h \
@CMAKE_CURRENT_SOURCE_DIR@/../executables/softmodem-common.c \ @CMAKE_CURRENT_SOURCE_DIR@/../executables/softmodem-common.c \
@CMAKE_CURRENT_SOURCE_DIR@/../executables/rt_profiling.h \
@CMAKE_CURRENT_SOURCE_DIR@/../executables/create_tasks.c \ @CMAKE_CURRENT_SOURCE_DIR@/../executables/create_tasks.c \
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.c \ @CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.c \
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.h \ @CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.h \
......
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
#include "assertions.h" #include "assertions.h"
#include <common/utils/LOG/log.h> #include <common/utils/LOG/log.h>
#include <common/utils/system.h> #include <common/utils/system.h>
#include "rt_profiling.h"
#include "PHY/types.h" #include "PHY/types.h"
...@@ -116,22 +115,12 @@ void tx_func(void *param) ...@@ -116,22 +115,12 @@ void tx_func(void *param)
PHY_VARS_gNB *gNB = info->gNB; PHY_VARS_gNB *gNB = info->gNB;
int frame_tx = info->frame; int frame_tx = info->frame;
int slot_tx = info->slot; int slot_tx = info->slot;
int cumul_samples = gNB->frame_parms.get_samples_per_slot(0, &gNB->frame_parms);
int i = 1;
for (; i < gNB->frame_parms.slots_per_subframe / 2; i++)
cumul_samples += gNB->frame_parms.get_samples_per_slot(i, &gNB->frame_parms);
int samples = cumul_samples / i;
int absslot_tx = info->timestamp_tx / samples;
int absslot_rx = absslot_tx - gNB->RU_list[0]->sl_ahead;
int rt_prof_idx = absslot_rx % RT_PROF_DEPTH;
start_meas(&gNB->phy_proc_tx); start_meas(&gNB->phy_proc_tx);
clock_gettime(CLOCK_MONOTONIC, &gNB->rt_L1_profiling.start_L1_TX[rt_prof_idx]);
phy_procedures_gNB_TX(info, phy_procedures_gNB_TX(info,
frame_tx, frame_tx,
slot_tx, slot_tx,
1); 1);
clock_gettime(CLOCK_MONOTONIC, &gNB->rt_L1_profiling.return_L1_TX[rt_prof_idx]);
if (get_softmodem_params()->reorder_thread_disable) { if (get_softmodem_params()->reorder_thread_disable) {
processingData_RU_t syncMsgRU; processingData_RU_t syncMsgRU;
...@@ -182,15 +171,6 @@ void rx_func(void *param) ...@@ -182,15 +171,6 @@ void rx_func(void *param)
int frame_tx = info->frame_tx; int frame_tx = info->frame_tx;
int slot_tx = info->slot_tx; int slot_tx = info->slot_tx;
nfapi_nr_config_request_scf_t *cfg = &gNB->gNB_config; nfapi_nr_config_request_scf_t *cfg = &gNB->gNB_config;
int cumul_samples = gNB->frame_parms.get_samples_per_slot(0, &gNB->frame_parms);
int i = 1;
for (; i < gNB->frame_parms.slots_per_subframe / 2; i++)
cumul_samples += gNB->frame_parms.get_samples_per_slot(i, &gNB->frame_parms);
int samples = cumul_samples / i;
int absslot_tx = info->timestamp_tx / samples;
int absslot_rx = absslot_tx - gNB->RU_list[0]->sl_ahead;
int rt_prof_idx = absslot_rx % RT_PROF_DEPTH;
clock_gettime(CLOCK_MONOTONIC,&info->gNB->rt_L1_profiling.start_L1_RX[rt_prof_idx]);
start_meas(&softmodem_stats_rxtx_sf); start_meas(&softmodem_stats_rxtx_sf);
// ******************************************************************* // *******************************************************************
...@@ -254,7 +234,6 @@ void rx_func(void *param) ...@@ -254,7 +234,6 @@ void rx_func(void *param)
stop_meas( &softmodem_stats_rxtx_sf ); stop_meas( &softmodem_stats_rxtx_sf );
LOG_D(PHY,"%s() Exit proc[rx:%d%d tx:%d%d]\n", __FUNCTION__, frame_rx, slot_rx, frame_tx, slot_tx); LOG_D(PHY,"%s() Exit proc[rx:%d%d tx:%d%d]\n", __FUNCTION__, frame_rx, slot_rx, frame_tx, slot_tx);
clock_gettime(CLOCK_MONOTONIC,&info->gNB->rt_L1_profiling.return_L1_RX[rt_prof_idx]);
// Call the scheduler // Call the scheduler
start_meas(&gNB->ul_indication_stats); start_meas(&gNB->ul_indication_stats);
......
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
#include "common/utils/assertions.h" #include "common/utils/assertions.h"
#include "common/utils/system.h" #include "common/utils/system.h"
#include "common/ran_context.h" #include "common/ran_context.h"
#include "rt_profiling.h"
#include "radio/COMMON/common_lib.h" #include "radio/COMMON/common_lib.h"
#include "radio/ETHERNET/ethernet_lib.h" #include "radio/ETHERNET/ethernet_lib.h"
...@@ -1065,15 +1064,6 @@ void ru_tx_func(void *param) { ...@@ -1065,15 +1064,6 @@ void ru_tx_func(void *param) {
int print_frame = 8; int print_frame = 8;
char filename[40]; char filename[40];
int cumul_samples = fp->get_samples_per_slot(0, fp);
int i = 1;
for (; i < fp->slots_per_subframe / 2; i++)
cumul_samples += fp->get_samples_per_slot(i, fp);
int samples = cumul_samples / i;
int absslot_tx = info->timestamp_tx / samples;
int absslot_rx = absslot_tx - ru->sl_ahead;
int rt_prof_idx = absslot_rx % RT_PROF_DEPTH;
clock_gettime(CLOCK_MONOTONIC,&ru->rt_ru_profiling.start_RU_TX[rt_prof_idx]);
// do TX front-end processing if needed (precoding and/or IDFTs) // do TX front-end processing if needed (precoding and/or IDFTs)
if (ru->feptx_prec) ru->feptx_prec(ru,frame_tx,slot_tx); if (ru->feptx_prec) ru->feptx_prec(ru,frame_tx,slot_tx);
...@@ -1116,11 +1106,6 @@ void ru_tx_func(void *param) { ...@@ -1116,11 +1106,6 @@ void ru_tx_func(void *param) {
}//for (i=0; i<ru->nb_tx; i++) }//for (i=0; i<ru->nb_tx; i++)
}//if(frame_tx == print_frame) }//if(frame_tx == print_frame)
}//else emulate_rf }//else emulate_rf
clock_gettime(CLOCK_MONOTONIC,&ru->rt_ru_profiling.return_RU_TX[rt_prof_idx]);
struct timespec *t0=&ru->rt_ru_profiling.start_RU_TX[rt_prof_idx];
struct timespec *t1=&ru->rt_ru_profiling.return_RU_TX[rt_prof_idx];
LOG_D(PHY,"rt_prof_idx %d : RU_TX time %d\n",rt_prof_idx,(int)(1e9 * (t1->tv_sec - t0->tv_sec) + (t1->tv_nsec-t0->tv_nsec)));
} }
void *ru_thread( void *param ) { void *ru_thread( void *param ) {
...@@ -1281,9 +1266,6 @@ void *ru_thread( void *param ) { ...@@ -1281,9 +1266,6 @@ void *ru_thread( void *param ) {
proc->timestamp_tx += fp->get_samples_per_slot((sl+slidx)%fp->slots_per_frame,fp); proc->timestamp_tx += fp->get_samples_per_slot((sl+slidx)%fp->slots_per_frame,fp);
proc->frame_tx = (proc->frame_rx + (proc->tti_rx + ru->sl_ahead) / fp->slots_per_frame) & 1023; proc->frame_tx = (proc->frame_rx + (proc->tti_rx + ru->sl_ahead) / fp->slots_per_frame) & 1023;
proc->tti_tx = (proc->tti_rx + ru->sl_ahead) % fp->slots_per_frame; proc->tti_tx = (proc->tti_rx + ru->sl_ahead) % fp->slots_per_frame;
int absslot_rx = proc->timestamp_rx/fp->get_samples_per_slot(proc->tti_rx,fp);
int rt_prof_idx = absslot_rx % RT_PROF_DEPTH;
clock_gettime(CLOCK_MONOTONIC,&ru->rt_ru_profiling.return_RU_south_in[rt_prof_idx]);
LOG_D(PHY,"AFTER fh_south_in - SFN/SL:%d%d RU->proc[RX:%d.%d TX:%d.%d] RC.gNB[0]:[RX:%d%d TX(SFN):%d]\n", LOG_D(PHY,"AFTER fh_south_in - SFN/SL:%d%d RU->proc[RX:%d.%d TX:%d.%d] RC.gNB[0]:[RX:%d%d TX(SFN):%d]\n",
frame,slot, frame,slot,
proc->frame_rx,proc->tti_rx, proc->frame_rx,proc->tti_rx,
...@@ -1299,7 +1281,6 @@ void *ru_thread( void *param ) { ...@@ -1299,7 +1281,6 @@ void *ru_thread( void *param ) {
if (slot_type == NR_UPLINK_SLOT || slot_type == NR_MIXED_SLOT) { if (slot_type == NR_UPLINK_SLOT || slot_type == NR_MIXED_SLOT) {
if (ru->feprx) { if (ru->feprx) {
ru->feprx(ru,proc->tti_rx); ru->feprx(ru,proc->tti_rx);
clock_gettime(CLOCK_MONOTONIC,&ru->rt_ru_profiling.return_RU_feprx[rt_prof_idx]);
//LOG_M("rxdata.m","rxs",ru->common.rxdata[0],1228800,1,1); //LOG_M("rxdata.m","rxs",ru->common.rxdata[0],1228800,1,1);
LOG_D(PHY,"RU proc: frame_rx = %d, tti_rx = %d\n", proc->frame_rx, proc->tti_rx); LOG_D(PHY,"RU proc: frame_rx = %d, tti_rx = %d\n", proc->frame_rx, proc->tti_rx);
gNBscopeCopy(RC.gNB[0], gNBscopeCopy(RC.gNB[0],
...@@ -1330,15 +1311,10 @@ void *ru_thread( void *param ) { ...@@ -1330,15 +1311,10 @@ void *ru_thread( void *param ) {
prach_oc, prach_oc,
proc->frame_rx,proc->tti_rx); proc->frame_rx,proc->tti_rx);
} }
clock_gettime(CLOCK_MONOTONIC,&ru->rt_ru_profiling.return_RU_prachrx[rt_prof_idx]);
free_nr_ru_prach_entry(ru,prach_id); free_nr_ru_prach_entry(ru,prach_id);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_RU_PRACH_RX, 0 ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_RU_PRACH_RX, 0 );
} // end if (prach_id > 0) } // end if (prach_id > 0)
} // end if (ru->feprx) } // end if (ru->feprx)
else {
memset(&ru->rt_ru_profiling.return_RU_feprx[rt_prof_idx],0,sizeof(struct timespec));
memset(&ru->rt_ru_profiling.return_RU_prachrx[rt_prof_idx],0,sizeof(struct timespec));
}
} // end if (slot_type == NR_UPLINK_SLOT || slot_type == NR_MIXED_SLOT) { } // end if (slot_type == NR_UPLINK_SLOT || slot_type == NR_MIXED_SLOT) {
// At this point, all information for subframe has been received on FH interface // At this point, all information for subframe has been received on FH interface
......
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file time_profiling.h
* \brief Definitions for proflling real-time scheduling
* \author
* \date 2022
* \version 0.1
* \company Eurecom
* \email:
* \note
* \warning
*/
#ifndef TIME_PROFILING_H
#define TIME_PROFILING_H
#ifdef __cplusplus
extern "C"
{
#endif
// depth of trace in slots
#define RT_PROF_DEPTH 100
typedef struct {
int absslot_rx[RT_PROF_DEPTH];
struct timespec return_RU_south_in[RT_PROF_DEPTH];
struct timespec return_RU_feprx[RT_PROF_DEPTH];
struct timespec return_RU_prachrx[RT_PROF_DEPTH];
struct timespec return_RU_pushL1[RT_PROF_DEPTH];
struct timespec start_RU_TX[RT_PROF_DEPTH];
struct timespec return_RU_TX[RT_PROF_DEPTH];
} rt_ru_profiling_t;
typedef struct {
int absslot_ux[RT_PROF_DEPTH];
struct timespec start_L1_RX[RT_PROF_DEPTH];
struct timespec return_L1_RX[RT_PROF_DEPTH];
struct timespec start_L1_TX[RT_PROF_DEPTH];
struct timespec return_L1_TX[RT_PROF_DEPTH];
struct timespec return_L1_prachrx[RT_PROF_DEPTH];
struct timespec return_L1_puschL1[RT_PROF_DEPTH];
} rt_L1_profiling_t;
#ifdef __cplusplus
}
#endif
#endif
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
#include "defs_common.h" #include "defs_common.h"
#include "nfapi_nr_interface_scf.h" #include "nfapi_nr_interface_scf.h"
#include <common/utils/threadPool/thread-pool.h> #include <common/utils/threadPool/thread-pool.h>
#include <executables/rt_profiling.h>
#define MAX_BANDS_PER_RRU 4 #define MAX_BANDS_PER_RRU 4
#define MAX_RRU_CONFIG_SIZE 1024 #define MAX_RRU_CONFIG_SIZE 1024
...@@ -661,8 +660,6 @@ typedef struct RU_t_s { ...@@ -661,8 +660,6 @@ typedef struct RU_t_s {
int tpcores[16]; int tpcores[16];
/// number of cores for RU ThreadPool /// number of cores for RU ThreadPool
int num_tpcores; int num_tpcores;
/// structure for analyzing high-level RT measurements
rt_ru_profiling_t rt_ru_profiling;
} RU_t; } RU_t;
......
...@@ -41,7 +41,6 @@ ...@@ -41,7 +41,6 @@
#include "PHY/defs_common.h" #include "PHY/defs_common.h"
#include "PHY/CODING/nrLDPC_extern.h" #include "PHY/CODING/nrLDPC_extern.h"
#include "PHY/CODING/nrLDPC_decoder/nrLDPC_types.h" #include "PHY/CODING/nrLDPC_decoder/nrLDPC_types.h"
#include "executables/rt_profiling.h"
#include "nfapi_nr_interface_scf.h" #include "nfapi_nr_interface_scf.h"
#define MAX_NUM_RU_PER_gNB 8 #define MAX_NUM_RU_PER_gNB 8
...@@ -771,8 +770,6 @@ typedef struct PHY_VARS_gNB_s { ...@@ -771,8 +770,6 @@ typedef struct PHY_VARS_gNB_s {
int L1_tx_thread_core; int L1_tx_thread_core;
struct processingData_L1tx *msgDataTx; struct processingData_L1tx *msgDataTx;
void *scopeData; void *scopeData;
/// structure for analyzing high-level RT measurements
rt_L1_profiling_t rt_L1_profiling;
} PHY_VARS_gNB; } PHY_VARS_gNB;
typedef struct LDPCDecode_s { typedef struct LDPCDecode_s {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment