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
littleBu
OpenXG-RAN
Commits
1b35f0b1
Commit
1b35f0b1
authored
2 years ago
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added profiling circular buffer to gNB
parent
afed0cec
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
3 deletions
+22
-3
executables/nr-gnb.c
executables/nr-gnb.c
+14
-0
executables/rt_profiling.h
executables/rt_profiling.h
+5
-3
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+3
-0
No files found.
executables/nr-gnb.c
View file @
1b35f0b1
...
...
@@ -38,6 +38,7 @@
#include "assertions.h"
#include <common/utils/LOG/log.h>
#include <common/utils/system.h>
#include "rt_profiling.h"
#include "PHY/types.h"
...
...
@@ -115,10 +116,17 @@ void tx_func(void *param) {
int
frame_tx
=
info
->
frame
;
int
slot_tx
=
info
->
slot
;
int
absslot_tx
=
info
->
timestamp_tx
/
info
->
gNB
->
frame_parms
.
get_samples_per_slot
(
slot_tx
,
&
info
->
gNB
->
frame_parms
);
int
absslot_rx
=
absslot_tx
-
info
->
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_TX
[
rt_prof_idx
]);
phy_procedures_gNB_TX
(
info
,
frame_tx
,
slot_tx
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
info
->
gNB
->
rt_L1_profiling
.
return_L1_TX
[
rt_prof_idx
]);
}
void
rx_func
(
void
*
param
)
{
...
...
@@ -130,6 +138,11 @@ void rx_func(void *param) {
int
slot_tx
=
info
->
slot_tx
;
nfapi_nr_config_request_scf_t
*
cfg
=
&
gNB
->
gNB_config
;
int
absslot_tx
=
info
->
timestamp_tx
/
gNB
->
frame_parms
.
get_samples_per_slot
(
slot_rx
,
&
gNB
->
frame_parms
);
int
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
]);
start_meas
(
&
softmodem_stats_rxtx_sf
);
// *******************************************************************
...
...
@@ -229,6 +242,7 @@ void rx_func(void *param) {
stop_meas
(
&
softmodem_stats_rxtx_sf
);
LOG_D
(
PHY
,
"%s() Exit proc[rx:%d%d tx:%d%d]
\n
"
,
__FUNCTION__
,
frame_rx
,
slot_rx
,
frame_tx
,
slot_tx
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
info
->
gNB
->
rt_L1_profiling
.
return_L1_RX
[
rt_prof_idx
]);
// Call the scheduler
start_meas
(
&
gNB
->
ul_indication_stats
);
...
...
This diff is collapsed.
Click to expand it.
executables/rt_profiling.h
View file @
1b35f0b1
...
...
@@ -50,12 +50,14 @@ typedef struct {
}
rt_ru_profiling_t
;
typedef
struct
{
int
absslot_rx
[
RT_PROF_DEPTH
];
int
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_pushL1
[
RT_PROF_DEPTH
];
}
rt_
l
1_profiling_t
;
struct
timespec
return_L1_pus
c
hL1
[
RT_PROF_DEPTH
];
}
rt_
L
1_profiling_t
;
#ifdef __cplusplus
}
#endif
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/defs_gNB.h
View file @
1b35f0b1
...
...
@@ -42,6 +42,7 @@
#include "PHY/defs_common.h"
#include "PHY/CODING/nrLDPC_extern.h"
#include "PHY/CODING/nrLDPC_decoder/nrLDPC_types.h"
#include "executables/rt_profiling.h"
#include "nfapi_nr_interface_scf.h"
...
...
@@ -908,6 +909,8 @@ typedef struct PHY_VARS_gNB_s {
int
number_of_nr_dlsch_max
;
int
number_of_nr_ulsch_max
;
void
*
scopeData
;
/// structure for analyzing high-level RT measurements
rt_L1_profiling_t
rt_L1_profiling
;
}
PHY_VARS_gNB
;
typedef
struct
LDPCDecode_s
{
...
...
This diff is collapsed.
Click to expand it.
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