adding a few vdc signals to debug ue realtime behaviour
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7634 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -101,6 +101,8 @@ const char* eurecomVariablesNames[] = {
|
||||
"itti_alloc_msg",
|
||||
"mp_alloc",
|
||||
"mp_free",
|
||||
"ue_inst_cnt_rx",
|
||||
"ue_inst_cnt_tx"
|
||||
};
|
||||
|
||||
const char* eurecomFunctionsNames[] = {
|
||||
@@ -128,6 +130,8 @@ const char* eurecomFunctionsNames[] = {
|
||||
"eNB_thread_rx8",
|
||||
"eNB_thread_tx9",
|
||||
"eNB_thread_rx9",
|
||||
"ue_thread_tx",
|
||||
"ue_thread_rx",
|
||||
|
||||
/* PHY signals */
|
||||
"ue_synch",
|
||||
@@ -198,6 +202,7 @@ const char* eurecomFunctionsNames[] = {
|
||||
"mac_dlsch_preprocessor",
|
||||
"mac_schedule_dlsch",
|
||||
"mac_fill_dlsch_dci",
|
||||
|
||||
"macxface_out_of_sync_ind",
|
||||
"macxface_ue_decode_si",
|
||||
"macxface_ue_decode_ccch",
|
||||
@@ -210,7 +215,6 @@ const char* eurecomFunctionsNames[] = {
|
||||
"macxface_ue_get_sr",
|
||||
|
||||
"ue_send_mch_sdu",
|
||||
"ue_synch",
|
||||
|
||||
/*RLC signals */
|
||||
"rlc_data_req",
|
||||
|
||||
@@ -73,6 +73,8 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_VARIABLE_ITTI_ALLOC_MSG,
|
||||
VCD_SIGNAL_DUMPER_VARIABLE_MP_ALLOC,
|
||||
VCD_SIGNAL_DUMPER_VARIABLE_MP_FREE,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_RX,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_TX,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_LAST,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_END = VCD_SIGNAL_DUMPER_VARIABLES_LAST,
|
||||
} vcd_signal_dump_variables;
|
||||
@@ -102,6 +104,8 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RX8,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_TX9,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RX9,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_TX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_RX,
|
||||
|
||||
/* PHY signals */
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SYNCH,
|
||||
|
||||
+43
-23
@@ -623,6 +623,7 @@ static void *UE_thread_tx(void *arg)
|
||||
exit_fun("nothing to add");
|
||||
return &UE_thread_tx_retval;
|
||||
}
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_TX, 1 );
|
||||
|
||||
if ((subframe_select( &UE->lte_frame_parms, UE->slot_tx>>1 ) == SF_UL) ||
|
||||
(UE->lte_frame_parms.frame_type == FDD)) {
|
||||
@@ -661,21 +662,6 @@ static void *UE_thread_tx(void *arg)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
if (pthread_mutex_lock(&UE->mutex_tx) != 0) {
|
||||
LOG_E( PHY, "[SCHED][UE] error locking mutex for UE TX thread\n" );
|
||||
exit_fun("nothing to add");
|
||||
return &UE_thread_tx_retval;
|
||||
}
|
||||
|
||||
UE->instance_cnt_tx--;
|
||||
|
||||
if (pthread_mutex_unlock(&UE->mutex_tx) != 0) {
|
||||
LOG_E( PHY, "[SCHED][UE] error unlocking mutex for UE TX thread\n" );
|
||||
exit_fun("nothing to add");
|
||||
return &UE_thread_tx_retval;
|
||||
}
|
||||
|
||||
UE->slot_tx += 2;
|
||||
|
||||
if (UE->slot_tx >= 20) {
|
||||
@@ -685,6 +671,24 @@ static void *UE_thread_tx(void *arg)
|
||||
}
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX_UE, UE->slot_tx>>1 );
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_TX, 0 );
|
||||
|
||||
if (pthread_mutex_lock(&UE->mutex_tx) != 0) {
|
||||
LOG_E( PHY, "[SCHED][UE] error locking mutex for UE TX thread\n" );
|
||||
exit_fun("nothing to add");
|
||||
return &UE_thread_tx_retval;
|
||||
}
|
||||
|
||||
UE->instance_cnt_tx--;
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_TX, UE->instance_cnt_tx);
|
||||
|
||||
if (pthread_mutex_unlock(&UE->mutex_tx) != 0) {
|
||||
LOG_E( PHY, "[SCHED][UE] error unlocking mutex for UE TX thread\n" );
|
||||
exit_fun("nothing to add");
|
||||
return &UE_thread_tx_retval;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return &UE_thread_tx_retval;
|
||||
@@ -794,6 +798,7 @@ static void *UE_thread_rx(void *arg)
|
||||
return &UE_thread_rx_retval;
|
||||
}
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_RX, 1 );
|
||||
for (i=0; i<2; i++) {
|
||||
if ((subframe_select( &UE->lte_frame_parms, UE->slot_rx>>1 ) == SF_DL) ||
|
||||
(UE->lte_frame_parms.frame_type == FDD)) {
|
||||
@@ -908,6 +913,8 @@ static void *UE_thread_rx(void *arg)
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX_UE, UE->slot_rx>>1 );
|
||||
}
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_RX, 0 );
|
||||
|
||||
|
||||
if (pthread_mutex_lock(&UE->mutex_rx) != 0) {
|
||||
LOG_E( PHY, "[SCHED][UE] error locking mutex for UE RX\n" );
|
||||
@@ -916,6 +923,7 @@ static void *UE_thread_rx(void *arg)
|
||||
}
|
||||
|
||||
UE->instance_cnt_rx--;
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_RX, UE->instance_cnt_rx);
|
||||
|
||||
if (pthread_mutex_unlock(&UE->mutex_rx) != 0) {
|
||||
LOG_E( PHY, "[SCHED][UE] error unlocking mutex for UE RX\n" );
|
||||
@@ -1110,6 +1118,9 @@ void *UE_thread(void *arg)
|
||||
return &UE_thread_retval;
|
||||
}
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_RX, instance_cnt_rx);
|
||||
|
||||
|
||||
if (instance_cnt_rx == 0) {
|
||||
if (pthread_cond_signal(&UE->cond_rx) != 0) {
|
||||
LOG_E( PHY, "[SCHED][UE] ERROR pthread_cond_signal for UE RX thread\n" );
|
||||
@@ -1117,6 +1128,8 @@ void *UE_thread(void *arg)
|
||||
return &UE_thread_retval;
|
||||
}
|
||||
|
||||
LOG_D(HW,"signalled rx thread to wake up, hw_frame %d, hw_subframe %d (time %lli)\n", frame, hw_subframe, rt_get_time_ns()-T0 );
|
||||
|
||||
if (UE->mode == rx_calib_ue) {
|
||||
if (frame == 10) {
|
||||
LOG_D(PHY,
|
||||
@@ -1156,6 +1169,8 @@ void *UE_thread(void *arg)
|
||||
exit_fun("nothing to add");
|
||||
return &UE_thread_retval;
|
||||
}
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_TX, instance_cnt_tx);
|
||||
|
||||
|
||||
if (instance_cnt_tx == 0) {
|
||||
if (pthread_cond_signal(&UE->cond_tx) != 0) {
|
||||
@@ -1163,6 +1178,8 @@ void *UE_thread(void *arg)
|
||||
exit_fun("nothing to add");
|
||||
return &UE_thread_retval;
|
||||
}
|
||||
LOG_D(HW,"signalled tx thread to wake up, hw_frame %d, hw_subframe %d (time %lli)\n", frame, hw_subframe, rt_get_time_ns()-T0 );
|
||||
|
||||
} else {
|
||||
LOG_E( PHY, "[SCHED][UE] UE TX thread busy!!\n" );
|
||||
exit_fun("nothing to add");
|
||||
@@ -1504,11 +1521,13 @@ void *UE_thread(void *arg)
|
||||
exit_fun("nothing to add");
|
||||
} else {
|
||||
|
||||
UE->instance_cnt_rx++;
|
||||
//printf("UE_thread: Unlocking UE mutex_rx\n");
|
||||
pthread_mutex_unlock(&UE->mutex_rx);
|
||||
int instance_cnt_rx = ++UE->instance_cnt_rx;
|
||||
|
||||
if (UE->instance_cnt_rx == 0) {
|
||||
pthread_mutex_unlock(&UE->mutex_rx);
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_RX, instance_cnt_rx);
|
||||
|
||||
|
||||
if (instance_cnt_rx == 0) {
|
||||
LOG_D(HW,"Scheduling UE RX for frame %d (hw frame %d), subframe %d (%d), mode %d\n",UE->frame_rx,frame,slot>>1,UE->slot_rx>>1,UE->mode);
|
||||
|
||||
if (pthread_cond_signal(&UE->cond_rx) != 0) {
|
||||
@@ -1548,11 +1567,12 @@ void *UE_thread(void *arg)
|
||||
exit_fun("nothing to add");
|
||||
} else {
|
||||
|
||||
UE->instance_cnt_tx++;
|
||||
//printf("UE_thread: Unlocking UE mutex_rx\n");
|
||||
pthread_mutex_unlock(&UE->mutex_tx);
|
||||
int instance_cnt_tx = ++UE->instance_cnt_tx;
|
||||
|
||||
if (UE->instance_cnt_tx == 0) {
|
||||
pthread_mutex_unlock(&UE->mutex_tx);
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_TX, instance_cnt_tx);
|
||||
|
||||
if (instance_cnt_tx == 0) {
|
||||
LOG_D(HW,"Scheduling UE TX for frame %d (hw frame %d), subframe %d (%d), mode %d\n",UE->frame_tx,frame,slot>>1,UE->slot_tx>>1,UE->mode);
|
||||
|
||||
if (pthread_cond_signal(&UE->cond_tx) != 0) {
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
[*]
|
||||
[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI
|
||||
[*] Thu Feb 5 17:45:30 2015
|
||||
[*] Tue Jun 23 10:22:38 2015
|
||||
[*]
|
||||
[dumpfile] "/tmp/openair_dump_UE.vcd"
|
||||
[dumpfile_mtime] "Thu Feb 5 17:10:05 2015"
|
||||
[dumpfile_size] 18764854
|
||||
[savefile] "/home/ephese/openair4G/targets/RT/USER/ue_exmimo2.gtkw"
|
||||
[timestart] 4937140000
|
||||
[size] 1463 640
|
||||
[dumpfile_mtime] "Tue Jun 23 10:21:56 2015"
|
||||
[dumpfile_size] 15561726
|
||||
[savefile] "/home/stevens/openair4G/targets/RT/USER/ue_exmimo2.gtkw"
|
||||
[timestart] 10448200000
|
||||
[size] 1215 640
|
||||
[pos] 105 102
|
||||
*-22.000000 4947033063 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
*-23.292629 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
[sst_width] 224
|
||||
[signals_width] 262
|
||||
[sst_expanded] 1
|
||||
@@ -26,9 +26,15 @@ functions.rt_sleep
|
||||
variables.subframe_number_RX_UE[63:0]
|
||||
variables.subframe_number_TX_UE[63:0]
|
||||
variables.slot_number_RX_UE[63:0]
|
||||
@25
|
||||
variables.slot_number_RX_UE[63:0]
|
||||
@28
|
||||
functions.ue_thread_rx
|
||||
functions.ue_thread_tx
|
||||
@420
|
||||
variables.ue_inst_cnt_rx[63:0]
|
||||
@421
|
||||
variables.ue_inst_cnt_tx[63:0]
|
||||
@28
|
||||
functions.phy_procedures_ue_rx
|
||||
functions.phy_procedures_ue_tx
|
||||
@24
|
||||
|
||||
Reference in New Issue
Block a user