-
[SPDK] SPDK 포팅 가이드논문 정리/Vertical optimization 2019. 10. 1. 05:15
SPDK의
env
라이브러리를 구현하는 것을 통해서 쉽게 다른곳으로 포팅할 수 있다.env
인터페이스는 드라이버가 아래와 같은 작업을 수행할 수 있도록 API를 제공한다.- 물리적으로 연속적이면서 pinned 메모리를 할당
- Cycle을 설정하거나 BAR를 mapping 하는 등의 PCI 작업을 수행
- 메모리 풀을 관리하고 virtual to physical address 변환을 수행
env
가 제공하는 API들은include/spdk/env.h
에 정의되어 있다.SPDK는 기본적으로
DPDK
를 기반으로 한env
를 제공한다. 해당 구현은lib/env_dpdk
에서 확인할 수 있다.DPDK는 현재 Linux와 FreeBSD만을 지원하고 있으므로, 다른 운영체제에서 사용하고 싶거나 DPDK외의 다른 유저스페이스 드라이버 프레임워크를 사용하고 싶은 경우 직접
env
를 구현해야 한다. 새로운 구현을 SPDK 빌드시 사용하고 싶을 경우 CONFIG에 아래와 같은 설정을 추가하면 된다.CONFIG_ENV?=$(SPDK_ROOT_DIR)/lib/env_dpdk
'논문 정리 > Vertical optimization' 카테고리의 다른 글
[SPDK] SPDK Structural Overview (0) 2019.10.03 [SPDK] Virtualized I/O with Vhost-user (0) 2019.10.02 [SPDK] Submitting I/O to an NVMe Device (0) 2019.10.01 [SPDK] Nand Flash SSD Internals (0) 2019.09.30 [SPDK] What is SPDK? - SPDK 란 무엇인가? (0) 2019.09.19