remove unused rt_profiling
This commit is contained in:
@@ -997,7 +997,6 @@ INPUT = \
|
|||||||
@CMAKE_CURRENT_SOURCE_DIR@/../executables/softmodem-common.h \
|
@CMAKE_CURRENT_SOURCE_DIR@/../executables/softmodem-common.h \
|
||||||
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-softmodem.c \
|
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-softmodem.c \
|
||||||
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-gnb.c \
|
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-gnb.c \
|
||||||
@CMAKE_CURRENT_SOURCE_DIR@/../executables/rt_profiling.h \
|
|
||||||
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.h \
|
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.h \
|
||||||
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.c \
|
@CMAKE_CURRENT_SOURCE_DIR@/../executables/nr-uesoftmodem.c \
|
||||||
@CMAKE_CURRENT_SOURCE_DIR@/../executables/lte-softmodem.h \
|
@CMAKE_CURRENT_SOURCE_DIR@/../executables/lte-softmodem.h \
|
||||||
|
|||||||
@@ -36,7 +36,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"
|
||||||
|
|
||||||
@@ -91,12 +90,6 @@ static void tx_func(processingData_L1tx_t *info)
|
|||||||
int slot_tx = info->slot;
|
int slot_tx = info->slot;
|
||||||
int frame_rx = info->frame_rx;
|
int frame_rx = info->frame_rx;
|
||||||
int slot_rx = info->slot_rx;
|
int slot_rx = info->slot_rx;
|
||||||
int64_t absslot_tx = info->timestamp_tx / info->gNB->frame_parms.get_samples_per_slot(slot_tx, &info->gNB->frame_parms);
|
|
||||||
int64_t absslot_rx = absslot_tx - info->gNB->RU_list[0]->sl_ahead;
|
|
||||||
if (absslot_rx < 0) {
|
|
||||||
LOG_W(NR_PHY, "Slot ahead %d is larger than absslot_tx %ld. Cannot start TX yet.\n", info->gNB->RU_list[0]->sl_ahead, absslot_tx);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
LOG_D(NR_PHY, "%d.%d running tx_func\n", frame_tx, slot_tx);
|
LOG_D(NR_PHY, "%d.%d running tx_func\n", frame_tx, slot_tx);
|
||||||
PHY_VARS_gNB *gNB = info->gNB;
|
PHY_VARS_gNB *gNB = info->gNB;
|
||||||
module_id_t module_id = gNB->Mod_id;
|
module_id_t module_id = gNB->Mod_id;
|
||||||
@@ -134,8 +127,6 @@ static void tx_func(processingData_L1tx_t *info)
|
|||||||
if (tx_slot_type == NR_DOWNLINK_SLOT || tx_slot_type == NR_MIXED_SLOT || get_softmodem_params()->continuous_tx) {
|
if (tx_slot_type == NR_DOWNLINK_SLOT || tx_slot_type == NR_MIXED_SLOT || get_softmodem_params()->continuous_tx) {
|
||||||
start_meas(&info->gNB->phy_proc_tx);
|
start_meas(&info->gNB->phy_proc_tx);
|
||||||
phy_procedures_gNB_TX(info, frame_tx, slot_tx, 1);
|
phy_procedures_gNB_TX(info, frame_tx, slot_tx, 1);
|
||||||
const int rt_prof_idx = absslot_rx % RT_PROF_DEPTH;
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &info->gNB->rt_L1_profiling.return_L1_TX[rt_prof_idx]);
|
|
||||||
|
|
||||||
PHY_VARS_gNB *gNB = info->gNB;
|
PHY_VARS_gNB *gNB = info->gNB;
|
||||||
processingData_RU_t syncMsgRU;
|
processingData_RU_t syncMsgRU;
|
||||||
@@ -187,15 +178,6 @@ static void rx_func(processingData_L1_t *info)
|
|||||||
int frame_rx = info->frame_rx;
|
int frame_rx = info->frame_rx;
|
||||||
int slot_rx = info->slot_rx;
|
int slot_rx = info->slot_rx;
|
||||||
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;
|
|
||||||
int64_t absslot_tx = info->timestamp_tx / samples;
|
|
||||||
int64_t 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]);
|
|
||||||
|
|
||||||
// *******************************************************************
|
// *******************************************************************
|
||||||
|
|
||||||
@@ -253,7 +235,6 @@ static void rx_func(processingData_L1_t *info)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &info->gNB->rt_L1_profiling.return_L1_RX[rt_prof_idx]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output, size_t outputlen) {
|
static size_t dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output, size_t outputlen) {
|
||||||
|
|||||||
@@ -33,7 +33,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"
|
||||||
@@ -1038,15 +1037,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;
|
|
||||||
int64_t absslot_tx = info->timestamp_tx / samples;
|
|
||||||
int64_t 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)
|
if (ru->feptx_prec)
|
||||||
ru->feptx_prec(ru,frame_tx,slot_tx);
|
ru->feptx_prec(ru,frame_tx,slot_tx);
|
||||||
@@ -1093,11 +1083,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)
|
||||||
@@ -1273,9 +1258,6 @@ void *ru_thread(void *param)
|
|||||||
proc->timestamp_tx += fp->get_samples_per_slot(i % fp->slots_per_frame, fp);
|
proc->timestamp_tx += fp->get_samples_per_slot(i % fp->slots_per_frame, fp);
|
||||||
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;
|
||||||
proc->frame_tx = proc->tti_rx > proc->tti_tx ? (proc->frame_rx + 1) & 1023 : proc->frame_rx;
|
proc->frame_tx = proc->tti_rx > proc->tti_tx ? (proc->frame_rx + 1) & 1023 : proc->frame_rx;
|
||||||
int64_t 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,
|
||||||
@@ -1321,7 +1303,6 @@ void *ru_thread(void *param)
|
|||||||
rx_tti_busy[proc->tti_rx % RU_RX_SLOT_DEPTH] = true;
|
rx_tti_busy[proc->tti_rx % RU_RX_SLOT_DEPTH] = true;
|
||||||
ru->feprx(ru,proc->tti_rx);
|
ru->feprx(ru,proc->tti_rx);
|
||||||
LOG_D(NR_PHY, "Setting %d.%d (%d) to busy\n", proc->frame_rx, proc->tti_rx, proc->tti_rx % RU_RX_SLOT_DEPTH);
|
LOG_D(NR_PHY, "Setting %d.%d (%d) to busy\n", proc->frame_rx, proc->tti_rx, proc->tti_rx % RU_RX_SLOT_DEPTH);
|
||||||
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],
|
||||||
@@ -1352,15 +1333,10 @@ void *ru_thread(void *param)
|
|||||||
proc->frame_rx,
|
proc->frame_rx,
|
||||||
proc->tti_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) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,64 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
* 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 rt_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 {
|
|
||||||
int64_t 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 {
|
|
||||||
int64_t 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
|
|
||||||
@@ -39,7 +39,6 @@
|
|||||||
#include "time_meas.h"
|
#include "time_meas.h"
|
||||||
#include "defs_common.h"
|
#include "defs_common.h"
|
||||||
#include "nfapi_nr_interface_scf.h"
|
#include "nfapi_nr_interface_scf.h"
|
||||||
#include <executables/rt_profiling.h>
|
|
||||||
#include "common/utils/threadPool/task_ans.h"
|
#include "common/utils/threadPool/task_ans.h"
|
||||||
#include "common/utils/threadPool/thread-pool.h"
|
#include "common/utils/threadPool/thread-pool.h"
|
||||||
|
|
||||||
@@ -663,8 +662,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;
|
|
||||||
void* scopeData;
|
void* scopeData;
|
||||||
} RU_t;
|
} RU_t;
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
#include "PHY/CODING/nrLDPC_coding/nrLDPC_coding_interface.h"
|
#include "PHY/CODING/nrLDPC_coding/nrLDPC_coding_interface.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"
|
||||||
#include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
|
#include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
|
||||||
|
|
||||||
@@ -560,8 +559,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;
|
||||||
|
|
||||||
struct puschSymbolReqId {
|
struct puschSymbolReqId {
|
||||||
|
|||||||
Reference in New Issue
Block a user