get xran stats
Get xran stats in the trx_oran_get_stats function and use trx_oran_get_stats upon stopping and ending RF. Co-authored-by: Romain Beurdouche <romain.beurdouche@eurecom.fr>
This commit is contained in:
co-authored by
Romain Beurdouche
parent
b7a6b1b7d6
commit
02bc14d8c1
@@ -97,11 +97,19 @@ void exit_function(const char *file, const char *function, const int line, const
|
|||||||
oai_exit = 1;
|
oai_exit = 1;
|
||||||
|
|
||||||
if (ru_m.rfdevice.trx_end_func) {
|
if (ru_m.rfdevice.trx_end_func) {
|
||||||
|
if (ru_m.rfdevice.trx_get_stats_func) {
|
||||||
|
ru_m.rfdevice.trx_get_stats_func(&ru_m.rfdevice);
|
||||||
|
ru_m.rfdevice.trx_get_stats_func = NULL;
|
||||||
|
}
|
||||||
ru_m.rfdevice.trx_end_func(&ru_m.rfdevice);
|
ru_m.rfdevice.trx_end_func(&ru_m.rfdevice);
|
||||||
ru_m.rfdevice.trx_end_func = NULL;
|
ru_m.rfdevice.trx_end_func = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ru_m.ifdevice.trx_end_func) {
|
if (ru_m.ifdevice.trx_end_func) {
|
||||||
|
if (ru_m.ifdevice.trx_get_stats_func) {
|
||||||
|
ru_m.ifdevice.trx_get_stats_func(&ru_m.ifdevice);
|
||||||
|
ru_m.ifdevice.trx_get_stats_func = NULL;
|
||||||
|
}
|
||||||
ru_m.ifdevice.trx_end_func(&ru_m.ifdevice);
|
ru_m.ifdevice.trx_end_func(&ru_m.ifdevice);
|
||||||
ru_m.ifdevice.trx_end_func = NULL;
|
ru_m.ifdevice.trx_end_func = NULL;
|
||||||
}
|
}
|
||||||
@@ -363,11 +371,19 @@ int main ( int argc, char **argv )
|
|||||||
end_configmodule(uniqCfg);
|
end_configmodule(uniqCfg);
|
||||||
|
|
||||||
if (ru->rfdevice.trx_end_func) {
|
if (ru->rfdevice.trx_end_func) {
|
||||||
|
if (ru->rfdevice.trx_get_stats_func) {
|
||||||
|
ru->rfdevice.trx_get_stats_func(&ru->rfdevice);
|
||||||
|
ru->rfdevice.trx_get_stats_func = NULL;
|
||||||
|
}
|
||||||
ru->rfdevice.trx_end_func(&ru->rfdevice);
|
ru->rfdevice.trx_end_func(&ru->rfdevice);
|
||||||
ru->rfdevice.trx_end_func = NULL;
|
ru->rfdevice.trx_end_func = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ru->ifdevice.trx_end_func) {
|
if (ru->ifdevice.trx_end_func) {
|
||||||
|
if (ru->ifdevice.trx_get_stats_func) {
|
||||||
|
ru->ifdevice.trx_get_stats_func(&ru->ifdevice);
|
||||||
|
ru->ifdevice.trx_get_stats_func = NULL;
|
||||||
|
}
|
||||||
ru->ifdevice.trx_end_func(&ru->ifdevice);
|
ru->ifdevice.trx_end_func(&ru->ifdevice);
|
||||||
ru->ifdevice.trx_end_func = NULL;
|
ru->ifdevice.trx_end_func = NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1371,6 +1371,9 @@ int start_rf(RU_t *ru) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int stop_rf(RU_t *ru) {
|
int stop_rf(RU_t *ru) {
|
||||||
|
if (ru->rfdevice.trx_get_stats_func) {
|
||||||
|
ru->rfdevice.trx_get_stats_func(&ru->rfdevice);
|
||||||
|
}
|
||||||
ru->rfdevice.trx_end_func(&ru->rfdevice);
|
ru->rfdevice.trx_end_func(&ru->rfdevice);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -207,11 +207,19 @@ void exit_function(const char *file, const char *function, const int line, const
|
|||||||
|
|
||||||
for (ru_id=0; ru_id<RC.nb_RU; ru_id++) {
|
for (ru_id=0; ru_id<RC.nb_RU; ru_id++) {
|
||||||
if (RC.ru[ru_id] && RC.ru[ru_id]->rfdevice.trx_end_func) {
|
if (RC.ru[ru_id] && RC.ru[ru_id]->rfdevice.trx_end_func) {
|
||||||
|
if (RC.ru[ru_id]->rfdevice.trx_get_stats_func) {
|
||||||
|
RC.ru[ru_id]->rfdevice.trx_get_stats_func(&RC.ru[ru_id]->rfdevice);
|
||||||
|
RC.ru[ru_id]->rfdevice.trx_get_stats_func = NULL;
|
||||||
|
}
|
||||||
RC.ru[ru_id]->rfdevice.trx_end_func(&RC.ru[ru_id]->rfdevice);
|
RC.ru[ru_id]->rfdevice.trx_end_func(&RC.ru[ru_id]->rfdevice);
|
||||||
RC.ru[ru_id]->rfdevice.trx_end_func = NULL;
|
RC.ru[ru_id]->rfdevice.trx_end_func = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RC.ru[ru_id] && RC.ru[ru_id]->ifdevice.trx_end_func) {
|
if (RC.ru[ru_id] && RC.ru[ru_id]->ifdevice.trx_end_func) {
|
||||||
|
if (RC.ru[ru_id]->ifdevice.trx_get_stats_func) {
|
||||||
|
RC.ru[ru_id]->ifdevice.trx_get_stats_func(&RC.ru[ru_id]->ifdevice);
|
||||||
|
RC.ru[ru_id]->ifdevice.trx_get_stats_func = NULL;
|
||||||
|
}
|
||||||
RC.ru[ru_id]->ifdevice.trx_end_func(&RC.ru[ru_id]->ifdevice);
|
RC.ru[ru_id]->ifdevice.trx_end_func(&RC.ru[ru_id]->ifdevice);
|
||||||
RC.ru[ru_id]->ifdevice.trx_end_func = NULL;
|
RC.ru[ru_id]->ifdevice.trx_end_func = NULL;
|
||||||
}
|
}
|
||||||
@@ -423,11 +431,17 @@ int stop_L1(module_id_t gnb_id)
|
|||||||
stop_RU(RC.nb_RU);
|
stop_RU(RC.nb_RU);
|
||||||
|
|
||||||
/* stop trx devices, multiple carrier currently not supported by RU */
|
/* stop trx devices, multiple carrier currently not supported by RU */
|
||||||
|
if (ru->rfdevice.trx_get_stats_func) {
|
||||||
|
ru->rfdevice.trx_get_stats_func(&ru->rfdevice);
|
||||||
|
}
|
||||||
if (ru->rfdevice.trx_stop_func) {
|
if (ru->rfdevice.trx_stop_func) {
|
||||||
ru->rfdevice.trx_stop_func(&ru->rfdevice);
|
ru->rfdevice.trx_stop_func(&ru->rfdevice);
|
||||||
LOG_I(GNB_APP, "turned off RU rfdevice\n");
|
LOG_I(GNB_APP, "turned off RU rfdevice\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ru->ifdevice.trx_get_stats_func) {
|
||||||
|
ru->ifdevice.trx_get_stats_func(&ru->rfdevice);
|
||||||
|
}
|
||||||
if (ru->ifdevice.trx_stop_func) {
|
if (ru->ifdevice.trx_stop_func) {
|
||||||
ru->ifdevice.trx_stop_func(&ru->ifdevice);
|
ru->ifdevice.trx_stop_func(&ru->ifdevice);
|
||||||
LOG_I(GNB_APP, "turned off RU ifdevice\n");
|
LOG_I(GNB_APP, "turned off RU ifdevice\n");
|
||||||
|
|||||||
@@ -170,8 +170,12 @@ void exit_function(const char *file, const char *function, const int line, const
|
|||||||
|
|
||||||
if (PHY_vars_UE_g && PHY_vars_UE_g[0]) {
|
if (PHY_vars_UE_g && PHY_vars_UE_g[0]) {
|
||||||
for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||||
if (PHY_vars_UE_g[0][CC_id] && PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func)
|
if (PHY_vars_UE_g[0][CC_id] && PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func) {
|
||||||
|
if (PHY_vars_UE_g[0][CC_id]->rfdevice.trx_get_stats_func) {
|
||||||
|
PHY_vars_UE_g[0][CC_id]->rfdevice.trx_get_stats_func(&PHY_vars_UE_g[0][CC_id]->rfdevice);
|
||||||
|
}
|
||||||
PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice);
|
PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -591,6 +595,8 @@ int main(int argc, char **argv)
|
|||||||
ret = pthread_join(phy_vars->stat_thread, NULL);
|
ret = pthread_join(phy_vars->stat_thread, NULL);
|
||||||
AssertFatal(ret == 0, "pthread_join error %d, errno %d (%s)\n", ret, errno, strerror(errno));
|
AssertFatal(ret == 0, "pthread_join error %d, errno %d (%s)\n", ret, errno, strerror(errno));
|
||||||
}
|
}
|
||||||
|
if (phy_vars->rfdevice.trx_get_stats_func)
|
||||||
|
phy_vars->rfdevice.trx_get_stats_func(&phy_vars->rfdevice);
|
||||||
if (phy_vars->rfdevice.trx_end_func)
|
if (phy_vars->rfdevice.trx_end_func)
|
||||||
phy_vars->rfdevice.trx_end_func(&phy_vars->rfdevice);
|
phy_vars->rfdevice.trx_end_func(&phy_vars->rfdevice);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,6 +103,11 @@ int trx_oran_set_gains(openair0_device *device, openair0_config_t *openair0_cfg)
|
|||||||
|
|
||||||
int trx_oran_get_stats(openair0_device *device)
|
int trx_oran_get_stats(openair0_device *device)
|
||||||
{
|
{
|
||||||
|
uint64_t total_time, used_time;
|
||||||
|
uint32_t num_core_used, core_used[64];
|
||||||
|
uint32_t ret = xran_get_time_stats(&total_time, &used_time, &num_core_used, &core_used[0], 0);
|
||||||
|
if (ret == 0)
|
||||||
|
LOG_I(HW, "xran_get_time_stats(): total thread time %ld, total time essential tasks %ld, num cores used %d\n", total_time, used_time, num_core_used);
|
||||||
printf("ORAN: %s\n", __FUNCTION__);
|
printf("ORAN: %s\n", __FUNCTION__);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user