임베디드 Linux에서 현재 실행 중인 스케줄링 정책을 어떻게 확인합니까?

임베디드 Linux에서 현재 실행 중인 스케줄링 정책을 어떻게 확인합니까?

맞춤형 임베디드 Linux 버전 3.14를 실행하는 ARM 기반 임베디드 타겟을 테스트하고 있습니다.

내 Linux가 런타임에 어떤 스케줄링 정책을 사용하고 있는지 알아낼 수 있는 방법이 있습니까?

/proc/sysTarget에서 비슷한 항목을 보았습니다 . 하지만 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]: ...

관련 정보