TSG-14342 tsg-service-chaining-engine在空闲时调用marsio_poll_wait让出cpu供其他进程使用
This commit is contained in:
@@ -54,11 +54,20 @@ struct sce_ctx *sce_ctx_create(const char *profile)
|
||||
MESA_load_profile_int_def(profile, "system", "enable_debug", (int *)&(ctx->enable_debug), 0);
|
||||
MESA_load_profile_int_def(profile, "system", "firewall_sids", (int *)&(ctx->firewall_sids), 1001);
|
||||
MESA_load_profile_int_def(profile, "system", "nr_worker_threads", (int *)&(ctx->nr_worker_threads), 8);
|
||||
MESA_load_profile_int_def(profile, "system", "enable_cpu_affinity", (int *)&ctx->enable_cpu_affinity, 0);
|
||||
MESA_load_profile_uint_range(profile, "system", "cpu_affinity_mask", MAX_THREAD_NUM, (unsigned int *)ctx->cpu_affinity_mask);
|
||||
MESA_load_profile_int_def(profile, "system", "ts_update_interval_ms", (int *)&(ctx->ts_update_interval_ms), 1);
|
||||
ctx->nr_worker_threads = MIN(ctx->nr_worker_threads, MAX_THREAD_NUM);
|
||||
|
||||
ctx->io = packet_io_create(profile, ctx->nr_worker_threads);
|
||||
CPU_ZERO(&ctx->coremask);
|
||||
for (int i = 0; i < ctx->nr_worker_threads; i++)
|
||||
{
|
||||
int cpu_id = ctx->cpu_affinity_mask[i];
|
||||
CPU_SET(cpu_id, &ctx->coremask);
|
||||
}
|
||||
|
||||
ctx->ts = timestamp_new(ctx->ts_update_interval_ms);
|
||||
|
||||
ctx->io = packet_io_create(profile, ctx->nr_worker_threads, &ctx->coremask);
|
||||
if (ctx->io == NULL)
|
||||
{
|
||||
goto error_out;
|
||||
@@ -95,6 +104,7 @@ void sce_ctx_destory(struct sce_ctx *ctx)
|
||||
policy_enforcer_destory(ctx->enforcer);
|
||||
global_metrics_destory(ctx->metrics);
|
||||
packet_io_destory(ctx->io);
|
||||
timestamp_free(ctx->ts);
|
||||
|
||||
free(ctx);
|
||||
ctx = NULL;
|
||||
|
||||
Reference in New Issue
Block a user