본문 바로가기

전체 글42

Waitqueue 프로세서를 wait 시킨 후 조건이 충족되면 다시 실행 시킬때 waitqeue를 사용한다 wait_event(wq, condition); wait_event_timeout(wq, condition, timeout); wait_event_cmd(wq, condition, cmd1, cmd2); wait_event_interruptible(wq, condition); wait_event_interruptible_timeout(wq, condition, timeout); wait_event_killable(wq, condition); wait_event(wq, condition); 프로세스가 wake up이 되면 condition을 확인 후 true가 되면 process를 다시 실행시킨다. wait_event.. 2023. 12. 13.
Scheduler debugfs CONFIG_SCHED_DEBUG=y로 커널을 부팅하면 /sys/kernel/debug/sched에서 스케줄러 특정 디버그 파일에 액세스할 수 있습니다. 이러한 파일 중 일부는 아래에 설명되어 있습니다. numa_balancing numa_balancing 디렉토리는 NUMA 밸런싱 기능을 제어하기 위해 파일을 저장하는 데 사용됩니다. 기능의 시스템 오버헤드가 너무 높으면 numa 힌트 오류에 대한 커널 샘플 비율이 scan_period_min_ms, scan_delay_ms, scan_period_max_ms, scan_size_mb 파일에 의해 제어될 수 있습니다. scan_period_min_ms, scan_delay_ms, scan_period_max_ms, scan_size_mb 자동 NUMA .. 2023. 11. 28.
Scheduler Statistics schedstats 버전 15에서는 일부 sched_yield: yld_exp_empty, yld_act_empty 및 yld_both_empty 카운터가 삭제되었습니다. 그렇지 않으면 버전 14와 동일합니다. Schedstats 버전 14는 2.6.13-2.6.19의 커널에 있던 버전 12의 통계와 동일하지만 2.6.20의 메인라인 커널을 강타한 sched_domains를 지원합니다. 일부 카운터는 실행 대기열 단위로, 다른 카운터는 도메인 단위로 하는 것이 더 타당합니다. 도메인(및 관련 정보)은 CONFIG_SMP를 사용하는 시스템에서만 관련되고 사용할 수 있습니다. schedstat 버전 14에서는 나열된 각 CPU에 대한 도메인 통계 수준이 하나 이상이며 도메인이 하나 이상 존재할 수도 있습니다.. 2023. 11. 28.
Real-Time group scheduling 0. WARNING 이러한 설정을 만지작거리면 시스템이 불안정해질 수 있으며, 노브는 루트만 해당되며 루트가 자신의 작업을 알고 있다고 가정합니다. 가장 주목할 만한 것: sched_rt_period_us의 매우 작은 값은 사용 가능한 hrtimer 해상도 또는 예산 새로 고침 자체를 처리하는 데 걸리는 시간보다 기간이 작을 경우 불안정한 시스템을 초래할 수 있습니다. sched_rt_runtime_us의 매우 작은 값은 런타임이 너무 작으면 시스템이 전진하는 데 어려움이 있을 때 불안정한 시스템을 초래할 수 있습니다(참고: 마이그레이션 스레드와 kstopmachine은 둘 다 실시간 프로세스입니다). 1. Overview 1.1 The problem 실시간 스케줄링은 결정론에 관한 것으로, 그룹은 일정.. 2023. 11. 28.