리눅스 6.13 커널은 '지연 선점(Lazy Preemption)' 모델을 도입하며, 이는 CONFIG_PREEMPT_LAZY=y로 설정됩니다. 이 새로운 기능은 공정 클래스 작업의 선점을 최적화하여 선점 요청을 틱 경계까지 지연시킵니다. 전체 선점과 유사하게 작동하지만, SCHED_NORMAL 작업의 선점을 덜 공격적으로 수행합니다. 이 접근 방식은 잠금 보유자의 선점을 최소화하고 성능을 향상시키는 것을 목표로 하며, 특히 자발적 선점(Voluntary preemption)이 활용되는 시나리오에서 효과적입니다.
지연 선점 외에도, 이번 업데이트는 재시작 가능 시퀀스(Restartable Sequences)의 캐시 지역성(cache locality) 개선과 프록시 실행(Proxy Execution)을 위한 준비 작업을 포함하고 있습니다. 이러한 개선 사항은 리눅스 커널 스케줄러의 효율성과 반응성을 향상시키는 것을 목표로 하며, 이는 다중 스레드 환경에서 성능에 매우 중요합니다.
지연 선점의 도입은 반응성과 빈번한 선점에 따른 성능 오버헤드 간의 균형을 맞추는 데 중요한 의미를 갖습니다. 이는 특히 실시간 및 일반 스케줄링 클래스를 혼합한 작업 부하에서 전체 시스템 성능을 개선할 수 있는 가능성을 제공합니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.