如何验证嵌入式Linux中当前运行的调度策略?

如何验证嵌入式Linux中当前运行的调度策略?

我正在测试一个基于 ARM 的嵌入式目标,运行定制的嵌入式 Linux 版本 3.14。

有什么方法可以找出我的 Linux 在运行时使用的调度策略吗?

/proc/sys在目标上看到了一些类似的条目。但我不确定是否是CFS:

 sched_child_runs_first
 sched_domain/
 sched_latency_ns
 sched_migration_cost_ns
 sched_min_granularity_ns
 sched_nr_migrate
 sched_rr_timeslice_ms
 sched_rt_period_us
 sched_rt_runtime_us
 sched_shares_window_ns
 sched_time_avg_ms
 sched_tunable_scaling
 sched_wakeup_granularity_ns

有人可以帮忙吗?

答案1

我假设您想了解您的系统是否正在使用 CFS CPU 调度程序。调度策略是 CFS 或其他调度程序使用的策略。在我的 Ubuntu 16.04 机器上,我有 /proc/sched_debug。或许你可以从以下内容中得到一些提示:

cat /proc/sched_debug

如果您的系统使用 CFS 调度程序,输出应包含类似以下内容:

cfs_rq[CORE_NUMBER]: ...

相关内容