uDMA: An Efficient User-Level DMA for NVMe SSDs

The Non-Volatile Memory Express (NVMe) SSD provides high I/O performance for current computer systems, and direct memory access (DMA) is the critical enabling mechanism for direct I/O. However, the lengthy I/O stack becomes a new bottleneck that degrades the potential of NVMe SSD. This paper reveals...

Full description

Bibliographic Details
Main Authors: Jinbin Zhu, Liang Wang, Limin Xiao, Guangjun Qin
Format: Article
Language:English
Published: MDPI AG 2023-01-01
Series:Applied Sciences
Subjects:
Online Access:https://www.mdpi.com/2076-3417/13/2/960
_version_ 1827628959889620992
author Jinbin Zhu
Liang Wang
Limin Xiao
Guangjun Qin
author_facet Jinbin Zhu
Liang Wang
Limin Xiao
Guangjun Qin
author_sort Jinbin Zhu
collection DOAJ
description The Non-Volatile Memory Express (NVMe) SSD provides high I/O performance for current computer systems, and direct memory access (DMA) is the critical enabling mechanism for direct I/O. However, the lengthy I/O stack becomes a new bottleneck that degrades the potential of NVMe SSD. This paper reveals that existing user-level DMA introduces additional overhead for pinning memory used by DMA from the user space. Moreover, it cannot adapt to I/O requests of different data sizes. This paper proposes an efficient and dynamically adaptive user-level DMA (uDMA) mechanism that can adapt to I/O requests for different data sizes and lighten the I/O software stack by amortizing per-request latency. The critical component of uDMA is the pinned memory pool, which avoids frequently pinning new memory blocks by reusing allocated and pinned memory blocks. In addition, it effectively connects the discrete pinned memory blocks by the scatter/gather lists, improving the utilization of the pinned memory pool. Compared with the latest user-level DMA method, uDMA has an improvement of at least 17% under various data sizes.
first_indexed 2024-03-09T13:43:00Z
format Article
id doaj.art-2482aebc98c34533b64c18224ec2da69
institution Directory Open Access Journal
issn 2076-3417
language English
last_indexed 2024-03-09T13:43:00Z
publishDate 2023-01-01
publisher MDPI AG
record_format Article
series Applied Sciences
spelling doaj.art-2482aebc98c34533b64c18224ec2da692023-11-30T21:04:10ZengMDPI AGApplied Sciences2076-34172023-01-0113296010.3390/app13020960uDMA: An Efficient User-Level DMA for NVMe SSDsJinbin Zhu0Liang Wang1Limin Xiao2Guangjun Qin3State Key Laboratory of Software Development Environment, Beihang University, Beijing 100191, ChinaState Key Laboratory of Software Development Environment, Beihang University, Beijing 100191, ChinaState Key Laboratory of Software Development Environment, Beihang University, Beijing 100191, ChinaSmart City College, Beijing Union University, Beijing 100101, ChinaThe Non-Volatile Memory Express (NVMe) SSD provides high I/O performance for current computer systems, and direct memory access (DMA) is the critical enabling mechanism for direct I/O. However, the lengthy I/O stack becomes a new bottleneck that degrades the potential of NVMe SSD. This paper reveals that existing user-level DMA introduces additional overhead for pinning memory used by DMA from the user space. Moreover, it cannot adapt to I/O requests of different data sizes. This paper proposes an efficient and dynamically adaptive user-level DMA (uDMA) mechanism that can adapt to I/O requests for different data sizes and lighten the I/O software stack by amortizing per-request latency. The critical component of uDMA is the pinned memory pool, which avoids frequently pinning new memory blocks by reusing allocated and pinned memory blocks. In addition, it effectively connects the discrete pinned memory blocks by the scatter/gather lists, improving the utilization of the pinned memory pool. Compared with the latest user-level DMA method, uDMA has an improvement of at least 17% under various data sizes.https://www.mdpi.com/2076-3417/13/2/960NVMe SSDuser-level DMAscatter/gather listspinned memory pool
spellingShingle Jinbin Zhu
Liang Wang
Limin Xiao
Guangjun Qin
uDMA: An Efficient User-Level DMA for NVMe SSDs
Applied Sciences
NVMe SSD
user-level DMA
scatter/gather lists
pinned memory pool
title uDMA: An Efficient User-Level DMA for NVMe SSDs
title_full uDMA: An Efficient User-Level DMA for NVMe SSDs
title_fullStr uDMA: An Efficient User-Level DMA for NVMe SSDs
title_full_unstemmed uDMA: An Efficient User-Level DMA for NVMe SSDs
title_short uDMA: An Efficient User-Level DMA for NVMe SSDs
title_sort udma an efficient user level dma for nvme ssds
topic NVMe SSD
user-level DMA
scatter/gather lists
pinned memory pool
url https://www.mdpi.com/2076-3417/13/2/960
work_keys_str_mv AT jinbinzhu udmaanefficientuserleveldmafornvmessds
AT liangwang udmaanefficientuserleveldmafornvmessds
AT liminxiao udmaanefficientuserleveldmafornvmessds
AT guangjunqin udmaanefficientuserleveldmafornvmessds