Reorganized priorities to avoid GW starve the CPU

master
Ismael Gomez 4 years ago committed by Andre Puschmann
parent 5ed6c18ac7
commit e378a45db0

@ -78,7 +78,7 @@ private:
const static int MAX_WORKERS = 4;
const static int PRACH_WORKER_THREAD_PRIO = 3;
const static int PRACH_WORKER_THREAD_PRIO = 5;
const static int SF_RECV_THREAD_PRIO = 1;
const static int WORKERS_THREAD_PRIO = 2;

@ -118,7 +118,7 @@ public:
void defer_task(srslte::move_task_t task) final;
private:
static const int STACK_MAIN_THREAD_PRIO = -1; // Use default high-priority below UHD
static const int STACK_MAIN_THREAD_PRIO = 4;
// thread loop
void run_thread() override;
void stop_impl();

@ -114,7 +114,7 @@ private:
uint32_t current_tti = 10240;
// Thread
static const int STACK_MAIN_THREAD_PRIO = -1; // Use default high-priority below UHD
static const int STACK_MAIN_THREAD_PRIO = 4;
srslte::task_multiqueue pending_tasks;
std::vector<srslte::move_task_t> deferred_stack_tasks; ///< enqueues stack tasks from within. Avoids locking
srslte::task_thread_pool background_tasks; ///< Thread pool used for long, low-priority tasks

@ -115,9 +115,6 @@ private:
bool is_in_window(uint32_t tti, int* start, int* len);
static const int MAC_MAIN_THREAD_PRIO = -1; // Use default high-priority below UHD
static const int MAC_PDU_THREAD_PRIO = 5;
// Interaction with PHY
phy_interface_mac_lte* phy_h = nullptr;
rlc_interface_mac* rlc_h = nullptr;

@ -165,7 +165,7 @@ private:
gw_interface_stack* gw = nullptr;
// Thread
static const int STACK_MAIN_THREAD_PRIO = -1; // Use default high-priority below UHD
static const int STACK_MAIN_THREAD_PRIO = 4;
srslte::task_multiqueue pending_tasks;
int sync_queue_id = -1, ue_queue_id = -1, gw_queue_id = -1, stack_queue_id = -1, background_queue_id = -1;
srslte::task_thread_pool background_tasks; ///< Thread pool used for long, low-priority tasks

@ -134,7 +134,7 @@ private:
gw_interface_stack* gw = nullptr;
// Thread
static const int STACK_MAIN_THREAD_PRIO = -1; // Use default high-priority below UHD
static const int STACK_MAIN_THREAD_PRIO = 4;
srslte::task_multiqueue pending_tasks;
int sync_queue_id = -1, ue_queue_id = -1, gw_queue_id = -1, mac_queue_id = -1, background_queue_id = -1;

@ -69,7 +69,7 @@ public:
void add_mch_port(uint32_t lcid, uint32_t port);
private:
static const int GW_THREAD_PRIO = 7;
static const int GW_THREAD_PRIO = -1;
stack_interface_gw* stack = nullptr;
srslte::byte_buffer_pool* pool = nullptr;

Loading…
Cancel
Save