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
lizhongxiao
OpenXG-RAN
Commits
7e86c883
Commit
7e86c883
authored
Jan 11, 2024
by
mir
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
TASK_MANAGER_CODING working RF Sim
parent
59caf353
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
3 deletions
+35
-3
common/utils/thread_pool/task_manager.h
common/utils/thread_pool/task_manager.h
+1
-1
openair1/PHY/CODING/nrLDPC_defs.h
openair1/PHY/CODING/nrLDPC_defs.h
+4
-0
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+30
-2
No files found.
common/utils/thread_pool/task_manager.h
View file @
7e86c883
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
// Comment for deactivating ws tpool
// Comment for deactivating ws tpool
#define TASK_MANAGER_DECODING
#define TASK_MANAGER_DECODING
#define TASK_MANAGER_DEMODULATION
#define TASK_MANAGER_DEMODULATION
//
#define TASK_MANAGER_CODING
#define TASK_MANAGER_CODING
//#define TASK_MANAGER_RU
//#define TASK_MANAGER_RU
//#define TASK_MANAGER_UE
//#define TASK_MANAGER_UE
...
...
openair1/PHY/CODING/nrLDPC_defs.h
View file @
7e86c883
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
#define __NRLDPC_DEFS__H__
#define __NRLDPC_DEFS__H__
#include <openair1/PHY/defs_nr_common.h>
#include <openair1/PHY/defs_nr_common.h>
#include "openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h"
#include "openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h"
#include "common/utils/thread_pool/task_manager.h"
/**
/**
\brief LDPC encoder
\brief LDPC encoder
...
@@ -63,6 +64,9 @@ typedef struct {
...
@@ -63,6 +64,9 @@ typedef struct {
unsigned
int
G
;
unsigned
int
G
;
// Redundancy version index
// Redundancy version index
uint8_t
rv
;
uint8_t
rv
;
#ifdef TASK_MANAGER_CODING
task_ans_t
*
ans
;
#endif
}
encoder_implemparams_t
;
}
encoder_implemparams_t
;
typedef
int32_t
(
LDPC_initfunc_t
)(
void
);
typedef
int32_t
(
LDPC_initfunc_t
)(
void
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
View file @
7e86c883
...
@@ -44,6 +44,7 @@
...
@@ -44,6 +44,7 @@
#include "common/utils/nr/nr_common.h"
#include "common/utils/nr/nr_common.h"
#include <syscall.h>
#include <syscall.h>
#include <openair2/UTIL/OPT/opt.h>
#include <openair2/UTIL/OPT/opt.h>
#include "common/utils/thread_pool/task_manager.h"
//#define DEBUG_DLSCH_CODING
//#define DEBUG_DLSCH_CODING
//#define DEBUG_DLSCH_FREE 1
//#define DEBUG_DLSCH_FREE 1
...
@@ -142,9 +143,8 @@ void clean_gNB_dlsch(NR_gNB_DLSCH_t *dlsch) {
...
@@ -142,9 +143,8 @@ void clean_gNB_dlsch(NR_gNB_DLSCH_t *dlsch) {
dlsch
->
active
=
0
;
dlsch
->
active
=
0
;
}
}
void
ldpc8blocks
(
void
*
p
)
static
void
ldpc8blocks
(
void
*
p
)
{
{
// assert(0!=0);
encoder_implemparams_t
*
impp
=
(
encoder_implemparams_t
*
)
p
;
encoder_implemparams_t
*
impp
=
(
encoder_implemparams_t
*
)
p
;
NR_DL_gNB_HARQ_t
*
harq
=
(
NR_DL_gNB_HARQ_t
*
)
impp
->
harq
;
NR_DL_gNB_HARQ_t
*
harq
=
(
NR_DL_gNB_HARQ_t
*
)
impp
->
harq
;
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
rel15
=
&
harq
->
pdsch_pdu
.
pdsch_pdu_rel15
;
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
rel15
=
&
harq
->
pdsch_pdu
.
pdsch_pdu_rel15
;
...
@@ -258,6 +258,10 @@ void ldpc8blocks(void *p)
...
@@ -258,6 +258,10 @@ void ldpc8blocks(void *p)
#endif
#endif
r_offset
+=
E
;
r_offset
+=
E
;
}
}
#ifdef TASK_MANAGER_CODING
completed_task_ans
(
impp
->
ans
);
#endif
}
}
int
nr_dlsch_encoding
(
PHY_VARS_gNB
*
gNB
,
int
nr_dlsch_encoding
(
PHY_VARS_gNB
*
gNB
,
...
@@ -387,15 +391,38 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
...
@@ -387,15 +391,38 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
notifiedFIFO_t
nf
=
{
0
};
notifiedFIFO_t
nf
=
{
0
};
initNotifiedFIFO
(
&
nf
);
initNotifiedFIFO
(
&
nf
);
int
nbJobs
=
0
;
int
nbJobs
=
0
;
#ifdef TASK_MANAGER_CODING
size_t
const
sz
=
(
impp
.
n_segments
/
8
+
((
impp
.
n_segments
&
7
)
==
0
?
0
:
1
));
encoder_implemparams_t
arr
[
sz
];
task_ans_t
ans
[
sz
];
memset
(
ans
,
0
,
sz
*
sizeof
(
task_ans_t
));
#endif
for
(
int
j
=
0
;
j
<
(
impp
.
n_segments
/
8
+
((
impp
.
n_segments
&
7
)
==
0
?
0
:
1
));
j
++
)
{
for
(
int
j
=
0
;
j
<
(
impp
.
n_segments
/
8
+
((
impp
.
n_segments
&
7
)
==
0
?
0
:
1
));
j
++
)
{
#ifdef TASK_MANAGER_CODING
assert
(
nbJobs
<
sz
);
encoder_implemparams_t
*
perJobImpp
=
&
arr
[
nbJobs
];
#else
notifiedFIFO_elt_t
*
req
=
newNotifiedFIFO_elt
(
sizeof
(
impp
),
j
,
&
nf
,
ldpc8blocks
);
notifiedFIFO_elt_t
*
req
=
newNotifiedFIFO_elt
(
sizeof
(
impp
),
j
,
&
nf
,
ldpc8blocks
);
encoder_implemparams_t
*
perJobImpp
=
(
encoder_implemparams_t
*
)
NotifiedFifoData
(
req
);
encoder_implemparams_t
*
perJobImpp
=
(
encoder_implemparams_t
*
)
NotifiedFifoData
(
req
);
#endif
*
perJobImpp
=
impp
;
*
perJobImpp
=
impp
;
perJobImpp
->
macro_num
=
j
;
perJobImpp
->
macro_num
=
j
;
#ifdef TASK_MANAGER_CODING
perJobImpp
->
ans
=
&
ans
[
nbJobs
];
task_t
t
=
{.
args
=
perJobImpp
,
.
func
=
ldpc8blocks
};
async_task_manager
(
&
gNB
->
man
,
t
);
#else
pushTpool
(
&
gNB
->
threadPool
,
req
);
pushTpool
(
&
gNB
->
threadPool
,
req
);
#endif
nbJobs
++
;
nbJobs
++
;
}
}
#ifdef TASK_MANAGER_CODING
if
(
nbJobs
>
0
)
{
join_task_ans
(
ans
,
nbJobs
);
}
#else
while
(
nbJobs
)
{
while
(
nbJobs
)
{
notifiedFIFO_elt_t
*
req
=
pullNotifiedFIFO
(
&
nf
);
notifiedFIFO_elt_t
*
req
=
pullNotifiedFIFO
(
&
nf
);
...
@@ -404,6 +431,7 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
...
@@ -404,6 +431,7 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
delNotifiedFIFO_elt
(
req
);
delNotifiedFIFO_elt
(
req
);
nbJobs
--
;
nbJobs
--
;
}
}
#endif
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ENCODING
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ENCODING
,
VCD_FUNCTION_OUT
);
return
0
;
return
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