From cf8c4015ee08514c7f0bd1c820c48bd936204aac Mon Sep 17 00:00:00 2001 From: Florian Kaltenberger <florian.kaltenberger@eurecom.fr> Date: Thu, 17 Oct 2013 08:55:43 +0000 Subject: [PATCH] fixed memory leak in dlsim (for TM5) git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4209 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair1/SIMULATION/LTE_PHY/dlsim.c | 47 ++++++++++------------------- 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c index 9ba5288ff2..386853f3c0 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim.c @@ -287,8 +287,8 @@ int main(int argc, char **argv) { printf("Detected cpu_freq %f GHz\n",cpu_freq_GHz); - signal(SIGSEGV, handler); - signal(SIGABRT, handler); + //signal(SIGSEGV, handler); + //signal(SIGABRT, handler); logInit(); @@ -1110,7 +1110,7 @@ int main(int argc, char **argv) { case 6: memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu2_1E[k],sizeof(DCI1E_5MHz_2A_M10PRB_TDD_t)); dci_alloc[num_dci].dci_length = sizeof_DCI1E_5MHz_2A_M10PRB_TDD_t; - dci_alloc[num_dci].L = 2; + dci_alloc[num_dci].L = 1; dci_alloc[num_dci].rnti = n_rnti+k; dci_alloc[num_dci].format = format1E_2A_M10PRB; dci_alloc[num_dci].nCCE = 4*k; @@ -1204,7 +1204,7 @@ int main(int argc, char **argv) { 0,subframe); uncoded_ber_bit = (short*) malloc(sizeof(short)*coded_bits_per_codeword); - + printf("uncoded_ber_bit=%p\n",uncoded_ber_bit); snr_step = input_snr_step; for (ch_realization=0;ch_realization<n_ch_rlz;ch_realization++){ @@ -2138,6 +2138,16 @@ int main(int argc, char **argv) { } } + PHY_vars_UE->dlsch_ue[0][0]->rnti = (common_flag==0) ? n_rnti: SI_RNTI; + coded_bits_per_codeword = get_G(&PHY_vars_eNB->lte_frame_parms, + PHY_vars_eNB->dlsch_eNB[0][0]->nb_rb, + PHY_vars_eNB->dlsch_eNB[0][0]->rb_alloc, + get_Qm(PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->mcs), + num_pdcch_symbols, + 0,subframe); + + PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->G = coded_bits_per_codeword; + // calculate uncoded BLER uncoded_ber=0; for (i=0;i<coded_bits_per_codeword;i++) @@ -2154,29 +2164,7 @@ int main(int argc, char **argv) { if (n_frames==1) write_output("uncoded_ber_bit.m","uncoded_ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); - /* - printf("precoded CQI %d dB, opposite precoded CQI %d dB\n", - PHY_vars_UE->PHY_measurements.precoded_cqi_dB[eNB_id][0], - PHY_vars_UE->PHY_measurements.precoded_cqi_dB[eNB_id_i][0]); - */ - // clip the llrs - /* for (i=0; i<coded_bits_per_codeword; i++) { - if (PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i]>127) - PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i] = 127; - else if (PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i]<-128) - PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0][i] = -128; - } - */ - PHY_vars_UE->dlsch_ue[0][0]->rnti = (common_flag==0) ? n_rnti: SI_RNTI; - coded_bits_per_codeword = get_G(&PHY_vars_eNB->lte_frame_parms, - PHY_vars_eNB->dlsch_eNB[0][0]->nb_rb, - PHY_vars_eNB->dlsch_eNB[0][0]->rb_alloc, - get_Qm(PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->mcs), - num_pdcch_symbols, - 0,subframe); - - PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->G = coded_bits_per_codeword; start_meas(&usts); dlsch_unscrambling(&PHY_vars_UE->lte_frame_parms, 0, @@ -2187,10 +2175,6 @@ int main(int argc, char **argv) { subframe<<1); stop_meas(&usts); - /* - for (i=0;i<coded_bits_per_codeword;i++) - PHY_vars_UE->lte_ue_pdsch_vars[0]->llr[0][i] = (short)quantize(100,PHY_vars_UE->lte_ue_pdsch_vars[0]->llr[0][i],4); - */ start_meas(&PHY_vars_UE->dlsch_decoding_stats); ret = dlsch_decoding(PHY_vars_UE, PHY_vars_UE->lte_ue_pdsch_vars[eNB_id]->llr[0], @@ -2445,7 +2429,8 @@ int main(int argc, char **argv) { fclose(csv_fd); } - free(uncoded_ber_bit); + if (uncoded_ber_bit) + free(uncoded_ber_bit); uncoded_ber_bit = NULL; for (k=0;k<n_users;k++) { free(input_buffer[k]); -- GitLab