리눅스 6.15에서 IO_uring 네트워크 제로 카피 수신 기능 도입

전문: https://www.phoronix.com/news/Linux-6.15-IO_uring

원저자: Michael Larabel | 작성일: 2025-03-30 13:33
사이트 내 게시일: 2025-03-30 16:22
리눅스 6.15의 최신 업데이트는 io_uring을 통한 제로 카피 수신 기능을 지원하여, 커널 메모리를 우회하고 애플리케이션 메모리로 직접 대량 데이터를 효율적으로 수신할 수 있게 합니다. 이 개선 사항은 Pavel Begunkov와 David Wei에 의해 개발되었으며, 초기에는 호스트 메모리를 지원하고 향후 GPU 메모리로의 확장을 계획하고 있습니다.

구현은 드라이버가 하드웨어 수신 큐를 채우기 위해 페이지 풀을 활용하여 사용자 공간으로의 직접 DMA 전송을 가능하게 합니다. 이 방법은 소켓에서 데이터 읽기를 알림 메커니즘으로 변환하여, 커널이 사용자 공간에 데이터 위치를 알리는 방식입니다. 이 접근 방식은 devmem TCP 제안과 유사하며, 패킷 헤더를 커널 메모리에 유지하고 원하는 흐름을 제로 카피 하드웨어 큐로 유도하기 위해 하드웨어 헤더/데이터 분리 및 흐름 조정에 의존합니다.

실제 테스트에서 단일 CPU 코어가 200G 링크를 포화시켜 하이퍼 스레딩 없이 188Gbit의 대역폭을 달성하여 이전 devmem 솔루션에 비해 상당한 효율성 향상을 나타냈습니다. 이 패치 세트는 제로 카피 지원의 시작을 알리며, 동적 제로 카피 영역 할당, THP 지원 및 최적화와 같은 향후 개선 사항이 계획되어 있습니다.

또한, 업데이트는 io_uring을 통한 epoll 이벤트 읽기 지원을 포함하여, 기존 이벤트 유형을 보다 효율적인 완료 기반 모델로 매끄럽게 통합할 수 있게 합니다. 이 변경은 컨텍스트 스위치를 줄이고 기존 epoll 이벤트 루프에서 이벤트 처리를 개선하는 것을 목표로 합니다.

전반적으로 제로 카피 수신 및 향상된 epoll 이벤트 처리는 리눅스 6.15를 네트워크 성능 및 효율성의 중요한 발전으로 자리매김하게 하며, 특히 고대역폭 애플리케이션에 적합합니다.

* 이 글은 phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은 이곳에서 확인하실 수 있습니다.
카테고리: Software
태그: Linux (1186) Performance (1099) kernel (212) Networking (100) IO_uring (10) DMA (5) Zero-Copy (2) Epoll (1)

댓글

댓글을 쓰기 위해서는 로그인을 해 주세요.