Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
canghaiwuhen
OpenXG-RAN
Commits
7fa0c1be
Commit
7fa0c1be
authored
Jan 16, 2018
by
Hongzhi Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
multi thread fix compile
parent
72d9c941
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
15 deletions
+20
-15
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+7
-7
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
+13
-8
No files found.
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
View file @
7fa0c1be
...
@@ -587,7 +587,7 @@ int dlsch_encoding(PHY_VARS_eNB *eNB,
...
@@ -587,7 +587,7 @@ int dlsch_encoding(PHY_VARS_eNB *eNB,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING
,
VCD_FUNCTION_IN
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING
,
VCD_FUNCTION_IN
);
A
=
dlsch
->
harq_processes
[
harq_pid
]
->
TBS
;
//6228
A
=
dlsch
->
harq_processes
[
harq_pid
]
->
TBS
;
//6228
printf
(
"Encoder: A: %d
\n
"
,
A
);
printf
(
"Encoder: A: %d
subframe %d
\n
"
,
A
,
subframe
);
mod_order
=
get_Qm
(
dlsch
->
harq_processes
[
harq_pid
]
->
mcs
);
mod_order
=
get_Qm
(
dlsch
->
harq_processes
[
harq_pid
]
->
mcs
);
if
(
dlsch
->
harq_processes
[
harq_pid
]
->
mimo_mode
==
TM7
)
if
(
dlsch
->
harq_processes
[
harq_pid
]
->
mimo_mode
==
TM7
)
...
@@ -691,17 +691,17 @@ int dlsch_encoding(PHY_VARS_eNB *eNB,
...
@@ -691,17 +691,17 @@ int dlsch_encoding(PHY_VARS_eNB *eNB,
printf
(
"Encoding ... iind %d f1 %d, f2 %d
\n
"
,
iind
,
f1f2mat_old
[
iind
*
2
],
f1f2mat_old
[(
iind
*
2
)
+
1
]);
printf
(
"Encoding ... iind %d f1 %d, f2 %d
\n
"
,
iind
,
f1f2mat_old
[
iind
*
2
],
f1f2mat_old
[(
iind
*
2
)
+
1
]);
#endif
#endif
start_meas
(
te_stats
);
start_meas
(
te_stats
);
printf
(
"start turbo encoder kr %d kr>>3 %d
\n
"
,
Kr
,
Kr
>>
3
);
/*
printf("start turbo encoder kr %d kr>>3 %d\n", Kr, Kr>>3);
for (int tbc_counter = 0; tbc_counter< 8; tbc_counter++){
for (int tbc_counter = 0; tbc_counter< 8; tbc_counter++){
printf("turbo tbc number %d input %d\n",tbc_counter, dlsch->harq_processes[harq_pid]->c[r][tbc_counter]);
printf("turbo tbc number %d input %d\n",tbc_counter, dlsch->harq_processes[harq_pid]->c[r][tbc_counter]);
}
}
*/
/*printf("start encoder kr %d kr>>3 %d\n", Kr, Kr>>3
);
printf
(
"start encoder kr %d kr>>3 %d segment %d total segments %d
\n
"
,
Kr
,
Kr
>>
3
,
r
,
dlsch
->
harq_processes
[
harq_pid
]
->
C
);
for (int tbs_counter = 0; tbs_counter<
Kr>>3
; tbs_counter++){
for
(
int
tbs_counter
=
0
;
tbs_counter
<
8
;
tbs_counter
++
){
printf("%d
\n
", dlsch->harq_processes[harq_pid]->c[r][tbs_counter]);
printf
(
"%d
"
,
dlsch
->
harq_processes
[
harq_pid
]
->
c
[
r
][
tbs_counter
]);
}
}
printf("end encoder \n");
*/
printf
(
"end encoder
\n
"
);
#ifdef TD_DECODING
#ifdef TD_DECODING
threegpplte_turbo_encoder
(
dlsch
->
harq_processes
[
harq_pid
]
->
c
[
r
],
threegpplte_turbo_encoder
(
dlsch
->
harq_processes
[
harq_pid
]
->
c
[
r
],
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
View file @
7fa0c1be
...
@@ -538,7 +538,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
...
@@ -538,7 +538,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
start_meas
(
dlsch_turbo_decoding_stats
);
start_meas
(
dlsch_turbo_decoding_stats
);
#endif
#endif
LOG_
D
(
PHY
,
"AbsSubframe %d.%d Start turbo segment %d/%d
\n
"
,
frame
%
1024
,
nr_tti_rx
,
r
,
harq_process
->
C
-
1
);
LOG_
I
(
PHY
,
"AbsSubframe %d.%d Start turbo segment %d/%d
\n
"
,
frame
%
1024
,
nr_tti_rx
,
r
,
harq_process
->
C
-
1
);
printf
(
"harq process dr
\n
"
);
printf
(
"harq process dr
\n
"
);
//66*p_decParams->Z
//66*p_decParams->Z
...
@@ -1295,7 +1295,7 @@ if (harq_process->C>1) { // wakeup worker if more than 1 segment
...
@@ -1295,7 +1295,7 @@ if (harq_process->C>1) { // wakeup worker if more than 1 segment
&
phy_vars_ue
->
dlsch_tc_intl1_stats
,
&
phy_vars_ue
->
dlsch_tc_intl1_stats
,
&
phy_vars_ue
->
dlsch_tc_intl2_stats
);
//(is_crnti==0)?harq_pid:harq_pid+1);
&
phy_vars_ue
->
dlsch_tc_intl2_stats
);
//(is_crnti==0)?harq_pid:harq_pid+1);
printf
(
"main thread output channel decoder
%d %d %d %d %d
\n
"
,
harq_process
->
c
[
r
][
0
],
harq_process
->
c
[
r
][
1
],
harq_process
->
c
[
r
][
2
],
harq_process
->
c
[
r
][
3
],
harq_process
->
c
[
r
][
4
]);
printf
(
"main thread output channel decoder
r=%d cr %d %d %d %d %d
\n
"
,
r
,
harq_process
->
c
[
r
][
0
],
harq_process
->
c
[
r
][
1
],
harq_process
->
c
[
r
][
2
],
harq_process
->
c
[
r
][
3
],
harq_process
->
c
[
r
][
4
]);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
...
@@ -1600,11 +1600,12 @@ uint32_t dlsch_decoding_2thread0(void *arg)
...
@@ -1600,11 +1600,12 @@ uint32_t dlsch_decoding_2thread0(void *arg)
int
llr8_flag1
=
proc
->
llr8_flag
;
int
llr8_flag1
=
proc
->
llr8_flag
;
//UE_rxtx_proc_t *proc = tdp->proc;
//UE_rxtx_proc_t *proc = tdp->proc;
int
frame
=
proc
->
frame_rx
;
int
frame
=
proc
->
frame_rx
;
int
subframe
=
proc
->
subframe
_rx
;
int
subframe
=
proc
->
nr_tti
_rx
;
LTE_UE_DLSCH_t
*
dlsch
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
][
0
];
LTE_UE_DLSCH_t
*
dlsch
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
][
0
];
LTE_DL_UE_HARQ_t
*
harq_process
=
dlsch
->
harq_processes
[
harq_pid
];
LTE_DL_UE_HARQ_t
*
harq_process
=
dlsch
->
harq_processes
[
harq_pid
];
short
*
dlsch_llr
=
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
llr
[
0
];
short
*
dlsch_llr
=
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
llr
[
0
];
//printf("2thread0 llr flag %d tdp flag %d\n",llr8_flag1, tdp->llr8_flag);
//printf("2thread0 llr flag %d tdp flag %d\n",llr8_flag1, tdp->llr8_flag);
printf
(
"nr_tti_tx %d subframe %d thread id %d
\n
"
,
proc
->
nr_tti_rx
,
subframe
,
phy_vars_ue
->
current_thread_id
[
subframe
]);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
time_stats_t
*
dlsch_rate_unmatching_stats
=&
phy_vars_ue
->
dlsch_rate_unmatching_stats
;
time_stats_t
*
dlsch_rate_unmatching_stats
=&
phy_vars_ue
->
dlsch_rate_unmatching_stats
;
...
@@ -1700,7 +1701,7 @@ uint32_t dlsch_decoding_2thread0(void *arg)
...
@@ -1700,7 +1701,7 @@ uint32_t dlsch_decoding_2thread0(void *arg)
G
=
harq_process
->
G
;
G
=
harq_process
->
G
;
//get_G(frame_parms,nb_rb,dlsch->rb_alloc,mod_order,num_pdcch_symbols,phy_vars_ue->frame,subframe);
//get_G(frame_parms,nb_rb,dlsch->rb_alloc,mod_order,num_pdcch_symbols,phy_vars_ue->frame,subframe);
// printf("DLSCH Decoding, harq_pid %d Ndi %d\n",harq_pid,harq_process->Ndi
);
printf
(
"DLSCH Decoding, A %d harq_pid %d G %d
\n
"
,
A
,
harq_pid
,
harq_process
->
G
);
if
(
harq_process
->
round
==
0
)
{
if
(
harq_process
->
round
==
0
)
{
// This is a new packet, so compute quantities regarding segmentation
// This is a new packet, so compute quantities regarding segmentation
...
@@ -1756,7 +1757,7 @@ uint32_t dlsch_decoding_2thread0(void *arg)
...
@@ -1756,7 +1757,7 @@ uint32_t dlsch_decoding_2thread0(void *arg)
#endif
#endif
opp_enabled
=
1
;
opp_enabled
=
1
;
printf
(
"harq process thread 0 half C %d
\n
"
,
harq_process
->
C
/
2
);
printf
(
"harq process thread 0 half C %d
harq_process->C %d
\n
"
,
harq_process
->
C
/
2
,
harq_process
->
C
);
for
(
r
=
(
harq_process
->
C
/
2
);
r
<
harq_process
->
C
;
r
++
)
{
for
(
r
=
(
harq_process
->
C
/
2
);
r
<
harq_process
->
C
;
r
++
)
{
...
@@ -1917,6 +1918,9 @@ uint32_t dlsch_decoding_2thread0(void *arg)
...
@@ -1917,6 +1918,9 @@ uint32_t dlsch_decoding_2thread0(void *arg)
&
phy_vars_ue
->
dlsch_tc_intl1_stats
,
&
phy_vars_ue
->
dlsch_tc_intl1_stats
,
&
phy_vars_ue
->
dlsch_tc_intl2_stats
);
//(is_crnti==0)?harq_pid:harq_pid+1);
&
phy_vars_ue
->
dlsch_tc_intl2_stats
);
//(is_crnti==0)?harq_pid:harq_pid+1);
printf
(
"sub thread output channel decoder r=%d cr %d %d %d %d %d
\n
"
,
r
,
harq_process
->
c
[
r
][
0
],
harq_process
->
c
[
r
][
1
],
harq_process
->
c
[
r
][
2
],
harq_process
->
c
[
r
][
3
],
harq_process
->
c
[
r
][
4
]);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
stop_meas
(
dlsch_turbo_decoding_stats
);
stop_meas
(
dlsch_turbo_decoding_stats
);
#endif
#endif
...
@@ -2083,12 +2087,12 @@ uint32_t dlsch_decoding_2thread0(void *arg)
...
@@ -2083,12 +2087,12 @@ uint32_t dlsch_decoding_2thread0(void *arg)
subframe_rx_prev += 10;
subframe_rx_prev += 10;
}
}
frame_rx_prev = frame_rx_prev%1024;*/
frame_rx_prev = frame_rx_prev%1024;*/
#if 0
if (err_flag == 1) {
if (err_flag == 1) {
#if UE_DEBUG_TRACE
//
#if UE_DEBUG_TRACE
LOG_I(PHY,"[UE %d] THREAD 0 DLSCH: Setting NAK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d) Kr %d r %d harq_process->round %d\n",
LOG_I(PHY,"[UE %d] THREAD 0 DLSCH: Setting NAK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d) Kr %d r %d harq_process->round %d\n",
phy_vars_ue->Mod_id, frame, subframe, harq_pid,harq_process->status, harq_process->round,harq_process->TBS,harq_process->mcs,Kr,r,harq_process->round);
phy_vars_ue->Mod_id, frame, subframe, harq_pid,harq_process->status, harq_process->round,harq_process->TBS,harq_process->mcs,Kr,r,harq_process->round);
#endif
//
#endif
dlsch->harq_ack[subframe].ack = 0;
dlsch->harq_ack[subframe].ack = 0;
dlsch->harq_ack[subframe].harq_id = harq_pid;
dlsch->harq_ack[subframe].harq_id = harq_pid;
dlsch->harq_ack[subframe].send_harq_status = 1;
dlsch->harq_ack[subframe].send_harq_status = 1;
...
@@ -2171,6 +2175,7 @@ uint32_t dlsch_decoding_2thread0(void *arg)
...
@@ -2171,6 +2175,7 @@ uint32_t dlsch_decoding_2thread0(void *arg)
//return(ret);
//return(ret);
}
}
#endif
proc
->
decoder_thread_available
=
1
;
proc
->
decoder_thread_available
=
1
;
proc
->
decoder_main_available
=
0
;
proc
->
decoder_main_available
=
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment