- Published on
리눅스 7.1(2026년 6월 14일)에 sched_ext의 cgroup 서브 스케줄러 지원이 들어갔습니다. 목표는 분명합니다 — cgroup 트리 어디에나 BPF 스케줄러를 붙이고, 부모 스케줄러가 자식들에게 CPU를 동적으로 배분해서, 컨테이너나 애플리케이션 도메인마다 자기 워크로드에 맞는 스케줄링 정책을 돌리는 것입니다. 동기는 cpuset 하드 파티셔닝이 주지 못하는 유연성이고, 멀티테넌트 머신을 굴리는 사람에게는 오래 기다린 물건입니다. 다만 7.1에 들어간 것은 dispatch 경로를 중심으로 한 핵심 뼈대이고, LWN의 정리를 그대로 옮기면 이 구현은 아직 완성되지 않았습니다 — enqueue 경로가 특히 빠져 있습니다. 즉 헤드라인은 "cgroup마다 다른 스케줄러"지만 오늘 프로덕션에서 그걸 할 수는 없고, 커널 문서조차 이 기능을 이벤트 카운터 한 줄로만 언급합니다. 이 글은 sched_ext 복습부터 서브 스케줄러의 동기와 설계, 7.1에 실제로 들어간 것과 빠진 것, 7.2에서 이어지는 작업, 그리고 지금 시점에 이 기능을 어떻게 대해야 하는지를 정리합니다.