提交 e3e7ad8f authored 作者: Anthony Minessale's avatar Anthony Minessale

disable cpu timer affinity by default but make it still possible via config and…

disable cpu timer affinity by default but make it still possible via config and fix stray constant in tipping_point

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16679 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 fdf2c82c
......@@ -217,6 +217,7 @@ struct switch_runtime {
uint32_t debug_level;
uint32_t runlevel;
uint32_t tipping_point;
uint32_t timer_affinity;
};
extern struct switch_runtime runtime;
......
......@@ -1301,8 +1301,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
runtime.running = 1;
runtime.tipping_point = 1000000;
runtime.timer_affinity = -1;
runtime.initiated = switch_time_now();
switch_scheduler_add_task(switch_epoch_time_now(NULL), heartbeat_callback, "heartbeat", "core", 0, NULL, SSHF_NONE | SSHF_NO_DEL);
switch_uuid_get(&uuid);
......@@ -1443,6 +1444,12 @@ static void switch_load_core_config(const char *file)
switch_core_session_limit(atoi(val));
} else if (!strcasecmp(var, "tipping-point") && !zstr(val)) {
runtime.tipping_point = atoi(val);
} else if (!strcasecmp(var, "timer-affinity") && !zstr(val)) {
if (!strcasecmp(val, "disabled")) {
runtime.timer_affinity = -1;
} else {
runtime.timer_affinity = atoi(val);
}
} else if (!strcasecmp(var, "rtp-start-port") && !zstr(val)) {
switch_rtp_set_start_port((switch_port_t) atoi(val));
} else if (!strcasecmp(var, "rtp-end-port") && !zstr(val)) {
......
......@@ -363,7 +363,7 @@ SWITCH_DECLARE(void) switch_sleep(switch_interval_time_t t)
SWITCH_DECLARE(void) switch_cond_next(void)
{
if (session_manager.session_count > 1000) {
if (session_manager.session_count > runtime.tipping_point) {
os_yield();
return;
}
......@@ -594,10 +594,12 @@ SWITCH_MODULE_RUNTIME_FUNCTION(softtimer_runtime)
int fwd_errs = 0, rev_errs = 0;
#ifdef HAVE_CPU_SET_MACROS
cpu_set_t set;
CPU_ZERO(&set);
CPU_SET(0, &set);
sched_setaffinity(0, sizeof(set), &set);
if (runtime.timer_affinity > -1) {
cpu_set_t set;
CPU_ZERO(&set);
CPU_SET(0, &set);
sched_setaffinity(runtime.timer_affinity, sizeof(set), &set);
}
#endif
switch_time_sync();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论