mirror of https://github.com/PentHertz/srsLTE.git
Changed priorities to below UHD in srsUE
This commit is contained in:
parent
c0bbf6c5ae
commit
754566b28f
|
@ -38,7 +38,8 @@ public:
|
||||||
bool init(metrics_interface<metrics_t> *m_, float report_period_secs_=1.0) {
|
bool init(metrics_interface<metrics_t> *m_, float report_period_secs_=1.0) {
|
||||||
m = m_;
|
m = m_;
|
||||||
report_period_secs = report_period_secs_;
|
report_period_secs = report_period_secs_;
|
||||||
start_periodic(report_period_secs*1e6);
|
// Start with user-default priority
|
||||||
|
start_periodic(report_period_secs*1e6, -2);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void stop() {
|
void stop() {
|
||||||
|
|
|
@ -30,6 +30,9 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
// Default priority for all threads below UHD threads
|
||||||
|
#define DEFAULT_PRIORITY 60
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
|
|
|
@ -67,6 +67,20 @@ bool threads_new_rt_cpu(pthread_t *thread, void *(*start_routine) (void*), void
|
||||||
fprintf(stderr, "Error not enough privileges to set Scheduling priority\n");
|
fprintf(stderr, "Error not enough privileges to set Scheduling priority\n");
|
||||||
}
|
}
|
||||||
attr_enable = true;
|
attr_enable = true;
|
||||||
|
} else if (prio_offset == -1) {
|
||||||
|
param.sched_priority = sched_get_priority_max(SCHED_FIFO) - DEFAULT_PRIORITY;
|
||||||
|
pthread_attr_init(&attr);
|
||||||
|
if (pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED)) {
|
||||||
|
perror("pthread_attr_setinheritsched");
|
||||||
|
}
|
||||||
|
if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO)) {
|
||||||
|
perror("pthread_attr_setschedpolicy");
|
||||||
|
}
|
||||||
|
if (pthread_attr_setschedparam(&attr, ¶m)) {
|
||||||
|
perror("pthread_attr_setschedparam");
|
||||||
|
fprintf(stderr, "Error not enough privileges to set Scheduling priority\n");
|
||||||
|
}
|
||||||
|
attr_enable = true;
|
||||||
} else if (prio_offset == -2) {
|
} else if (prio_offset == -2) {
|
||||||
param.sched_priority = 0;
|
param.sched_priority = 0;
|
||||||
pthread_attr_init(&attr);
|
pthread_attr_init(&attr);
|
||||||
|
|
|
@ -562,7 +562,10 @@ int rf_uhd_open_multi(char *args, void **h, uint32_t nof_channels)
|
||||||
perror("pthread_create");
|
perror("pthread_create");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Restore priorities */
|
||||||
|
uhd_set_thread_priority(0, false);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
return SRSLTE_ERROR_INVALID_INPUTS;
|
return SRSLTE_ERROR_INVALID_INPUTS;
|
||||||
|
|
|
@ -112,8 +112,8 @@ public:
|
||||||
private:
|
private:
|
||||||
void run_thread();
|
void run_thread();
|
||||||
|
|
||||||
static const int MAC_MAIN_THREAD_PRIO = 5;
|
static const int MAC_MAIN_THREAD_PRIO = -1; // Use default high-priority below UHD
|
||||||
static const int MAC_PDU_THREAD_PRIO = 6;
|
static const int MAC_PDU_THREAD_PRIO = -1;
|
||||||
static const int MAC_NOF_HARQ_PROC = 2*HARQ_DELAY_MS;
|
static const int MAC_NOF_HARQ_PROC = 2*HARQ_DELAY_MS;
|
||||||
|
|
||||||
// Interaction with PHY
|
// Interaction with PHY
|
||||||
|
|
Loading…
Reference in New Issue