서지주요정보
Bringing network device drivers into userspace = 커널 네트워크 장치 드라이버를 이용한 고성능 사용자 드라이버 제작
서명 / 저자 Bringing network device drivers into userspace = 커널 네트워크 장치 드라이버를 이용한 고성능 사용자 드라이버 제작 / Keunhong Lee.
발행사항 [대전 : 한국과학기술원, 2016].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8029244

소장위치/청구기호

학술문화관(문화관) 보존서고

MCS 16043

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

With the advent of 10GbE/40GbE high performance NIC(Network Interface Card)s, high-performance network drivers bypassing the kernel network stack overheads have emerged. Intel Data Plane Development Kit (DPDK) is one such high-performance packet I/O framework with userspace drivers on top of Userspace I/O (UIO), which exposes device memory into userspace and delivers interrupts. However, the complex set of functionalities that today’s network drivers have to support calls for a great effort to re-implement kernel device drivers into userspace. In this work, we propose a methodology to build a high-performance userspace driver from existing kernel drivers. On top of UIO, we emulate kernel-specific functions for the userspace to make a greater percentage of kernel driver code reusable, and our novel shim interface makes a high-performance bridge between the device driver and Intel DPDK. With our emulation layer and optimized shim interface, we have successfully converted a 40GbE Mellanox driver for Intel DPDK and report 8.11 times better performance better than the original kernel driver for 64B packets.

최근 10GbE/40GbE 이상의 고성능 네트워크 장비들을 위하여 커널을 거치지 않는 고성능 사용자 드라이버가 개발되었다. 특히 Intel社 의 Data Plane Development Kit(DPDK) 는 고성능 네트워크 어플리케이션을 위한 고성능 사용자 드라이버와 라이브러리들을 포함하고 있다. Intel DPDK는 Linux 운영체제에서 지원하는 Userspace I/O(UIO)기술을 통하여 하드웨어 장비들을 어플리케이션에서 직접 제어할 수 있도록 해 준다. 이러한 방식의 문제점은 고성능 사용자 드라이버를 제공하기 위해서 각각의 하드웨어마다 새로이 드라이버를 개발해야 한다는 점이다. 드라이버의 제작은 특정 하드웨어에 대한 고도의 지식을 필요로 하는 작업이기 때문에 이를 위해서는 많은 시간과 비용이 필요하다. 본 연구에서는 기존 커널 드라이버의 코드를 대부분 재사용하면서 사용자 드라이버의 높은 성능 또한 이끌어낼 수 있는 방법론을 제시한다. 커널 드라이버를 사용자 공간에서 실행할 수 있는 기술은 기존 연구들에서 많이 다루어왔지만 그와 동시에 높은 성능을 이끌어내는 방법은 존재하지 않았다. 본 연구에서는 크게 두 가지 작업을 통하여 기존의 커널 드라이버를 사용자 드라이버로 변환한다. 먼저 드라이버에서 성능에 영향을 주지 않는 코드를 특정짓는다. 이들 코드는 장치 초기화, 제어, 자원 할당 등의 일을 수행하고 이들 코드는 전체 코드의 대부분을 차지한다. 하지만 이러한 부분들은 높은 성능을 요구하지 않기 때문에 기존 연구들로부터 알려진 방법들을 통하여 쉽게 실행될 수 있다. 두 번째로 드라이버 성능에 많은 영향을 주는 코드를 특정짓는다. 이들 코드는 하나의 패킷이 오고 갈 때마다 호출되는 코드로서 하드웨어에게 실제로 패킷을 보내고 받는 기능이 구현되어 있다. 이러한 부분들은 전체 드라이버 중에서 극히 일부분 만을 차지한다. 이 작은 부분만을 새로이 제작함으로서 코드 재사용과 고성능, 두 가지의 목표를 동시에 이룰 수 있다. 우리는 이 방법을 Mellanox社의 40GbE 네트워크 장비를 위한 mlx4 드라이버에 적용하였다. 또한 DPDK를 위한 호환 라이브러리를 함께 제공함으로써 기존의 DPDK 어플리케이션들이 수정 없이 mlx4 사용자 드라이버를 사용할 수 있도록 하였다. 이렇게 제작된 드라이버는 92% 정도의 코드를 재사용 하였고 또한 64B 패킷을 전송하는 상황에서 기존의 커널 드라이버보다 8.11배 더 빠른 성능을 보여주었다.

서지기타정보

서지기타정보
청구기호 {MCS 16043
형태사항 v, 25 p. : 삽화 ; 30 cm
언어 영어
일반주기 저자명의 한글표기 : 이근홍
지도교수의 영문표기 : Sue Bok Moon
지도교수의 한글표기 : 문수복
공동지도교수의 영문표기 : Dong Su Han
공동지도교수의 한글표기 : 한동수
학위논문 학위논문(석사) - 한국과학기술원 : 전산학부,
서지주기 References : p. 21-22
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서