리눅스 6.17 업데이트는 파이어와이어 IEEE-1394 지원을 크게 개선하여 최소 2029년까지 유지될 수 있도록 보장합니다. 이 업데이트는 파이어와이어 서브시스템에서 남아 있는 태스크렛(tasklet) 사용을 비동기 패킷 전송을 위한 작업 큐(workqueue)로 대체하여 서브시스템에서 태스크렛을 완전히 제거합니다.
비동기 패킷 전송은 직렬 버스 토폴로지를 관리하고 SBP-2 프로토콜 드라이버(firewire-sbp2)를 운영하는 데 중요합니다. 저메모리 상황에서의 신뢰성을 높이기 위해, 작업 큐는 WQ_MEM_RECLAIM 플래그와 함께 생성되어 메모리 회수 경로에 참여할 수 있도록 합니다. 이 작업 큐의 속성은 6.12 버전에서 작업 큐로 이전된 동기 패킷 처리에 사용된 속성과 일치합니다.
새로운 작업 큐는 수면 가능(sleepable)하며, 선점 가능한(preemptible) 작업 항목을 지원하여 시스템 수준에서 적시의 작업 선점을 요구하는 실시간 작업에 더 적합합니다. 그러나 'tasklet_disable_in_atomic()'을 'disable_work_sync()'로 직접 대체함에 따라 RCU 읽기 측 비판적 섹션 내에서 'schedule()'가 호출될 수 있는 지속적인 문제가 있습니다. 이 문제에 대한 제안된 수정 사항은 현재 검토 및 테스트 중이며, 곧 상위 버전으로 전송될 것으로 기대됩니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.