mirror of https://github.com/PentHertz/srsLTE.git
srsue: limit sync queue length to 1 for ZMQ radio
apply same change that we've done on the eNB also on the UE to avoid the PHY processing TTIs faster than the stack. Without that, we see lots of those in the logs: ... 08:39:17.580325 [STCK] [W] Detected slow task processing (sync_queue_len=7). ...
This commit is contained in:
parent
c15b2ec810
commit
a5c0f96fa7
|
@ -68,6 +68,7 @@ typedef struct {
|
||||||
std::string ue_category_str;
|
std::string ue_category_str;
|
||||||
nas_args_t nas;
|
nas_args_t nas;
|
||||||
gw_args_t gw;
|
gw_args_t gw;
|
||||||
|
uint32_t sync_queue_size; // Max allowed difference between PHY and Stack clocks (in TTI)
|
||||||
bool have_tti_time_stats;
|
bool have_tti_time_stats;
|
||||||
} stack_args_t;
|
} stack_args_t;
|
||||||
|
|
||||||
|
|
|
@ -558,6 +558,14 @@ static int parse_args(all_args_t* args, int argc, char* argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set sync queue capacity to 1 for ZMQ
|
||||||
|
if (args->rf.device_name == "zmq") {
|
||||||
|
args->stack.sync_queue_size = 1;
|
||||||
|
} else {
|
||||||
|
// use default size
|
||||||
|
args->stack.sync_queue_size = MULTIQUEUE_DEFAULT_CAPACITY;
|
||||||
|
}
|
||||||
|
|
||||||
return SRSLTE_SUCCESS;
|
return SRSLTE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,10 +49,10 @@ ue_stack_lte::ue_stack_lte() :
|
||||||
tti_tprof("tti_tprof", "STCK", TTI_STAT_PERIOD)
|
tti_tprof("tti_tprof", "STCK", TTI_STAT_PERIOD)
|
||||||
{
|
{
|
||||||
ue_queue_id = pending_tasks.add_queue();
|
ue_queue_id = pending_tasks.add_queue();
|
||||||
sync_queue_id = pending_tasks.add_queue();
|
|
||||||
gw_queue_id = pending_tasks.add_queue();
|
gw_queue_id = pending_tasks.add_queue();
|
||||||
stack_queue_id = pending_tasks.add_queue();
|
stack_queue_id = pending_tasks.add_queue();
|
||||||
background_queue_id = pending_tasks.add_queue();
|
background_queue_id = pending_tasks.add_queue();
|
||||||
|
// sync_queue is added in init()
|
||||||
|
|
||||||
background_tasks.start();
|
background_tasks.start();
|
||||||
}
|
}
|
||||||
|
@ -125,6 +125,9 @@ int ue_stack_lte::init(const stack_args_t& args_, srslte::logger* logger_)
|
||||||
return SRSLTE_ERROR;
|
return SRSLTE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add sync queue
|
||||||
|
sync_queue_id = pending_tasks.add_queue(args.sync_queue_size);
|
||||||
|
|
||||||
mac.init(phy, &rlc, &rrc, this);
|
mac.init(phy, &rlc, &rrc, this);
|
||||||
rlc.init(&pdcp, &rrc, &timers, 0 /* RB_ID_SRB0 */);
|
rlc.init(&pdcp, &rrc, &timers, 0 /* RB_ID_SRB0 */);
|
||||||
pdcp.init(&rlc, &rrc, gw);
|
pdcp.init(&rlc, &rrc, gw);
|
||||||
|
|
|
@ -106,6 +106,8 @@ all_args_t parse_args(ttcn3_dut_args_t* args, int argc, char* argv[])
|
||||||
all_args.stack.log.gw_hex_limit = args->log_hex_level;
|
all_args.stack.log.gw_hex_limit = args->log_hex_level;
|
||||||
all_args.stack.log.usim_hex_limit = args->log_hex_level;
|
all_args.stack.log.usim_hex_limit = args->log_hex_level;
|
||||||
|
|
||||||
|
all_args.stack.sync_queue_size = 1;
|
||||||
|
|
||||||
return all_args;
|
return all_args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue