TY - JOUR
T1 - Command queue-aware host I/O stack for mobile flash storage
AU - Han, Kyuhwa
AU - Shin, Dongkun
N1 - Publisher Copyright:
© 2020 Elsevier B.V.
PY - 2020/10
Y1 - 2020/10
N2 - Recently, mobile storage devices such as an embedded multimedia card (eMMC) and universal flash storage (UFS) support command queuing. However, the current Linux I/O stack is not designed considering flash memory devices that support command queuing. In this paper, we observe the I/O performance at a command queue-supporting device and introduce several pitfalls of the current host I/O stack. First, although the latency of synchronous I/O requests can be increased due to the priority inversion in the command queue, the Linux I/O scheduler has no concern about the issue. Second, although the I/O bandwidth is determined by the total size of pending I/O requests rather than the total number of them in the command queue, the current I/O scheduler does not have a size-based scheduling scheme. Third, there can be interference between different types of requests in the command queue degrading the overall I/O performance. To resolve these problems, we introduce a novel command queue-aware host I/O stack, which consists of three techniques, latency-aware throttling, aggressive readahead, and interference-preventive scheduling. The experiments show that the command queue-aware techniques can improve both the foreground synchronous request latency and the background sequential I/O bandwidth when the two different types of tasks run concurrently.
AB - Recently, mobile storage devices such as an embedded multimedia card (eMMC) and universal flash storage (UFS) support command queuing. However, the current Linux I/O stack is not designed considering flash memory devices that support command queuing. In this paper, we observe the I/O performance at a command queue-supporting device and introduce several pitfalls of the current host I/O stack. First, although the latency of synchronous I/O requests can be increased due to the priority inversion in the command queue, the Linux I/O scheduler has no concern about the issue. Second, although the I/O bandwidth is determined by the total size of pending I/O requests rather than the total number of them in the command queue, the current I/O scheduler does not have a size-based scheduling scheme. Third, there can be interference between different types of requests in the command queue degrading the overall I/O performance. To resolve these problems, we introduce a novel command queue-aware host I/O stack, which consists of three techniques, latency-aware throttling, aggressive readahead, and interference-preventive scheduling. The experiments show that the command queue-aware techniques can improve both the foreground synchronous request latency and the background sequential I/O bandwidth when the two different types of tasks run concurrently.
KW - Command queue
KW - Consumer electronics
KW - Flash memory
KW - Scheduling
KW - System software
UR - https://www.scopus.com/pages/publications/85082875067
U2 - 10.1016/j.sysarc.2020.101758
DO - 10.1016/j.sysarc.2020.101758
M3 - Article
AN - SCOPUS:85082875067
SN - 1383-7621
VL - 109
JO - Journal of Systems Architecture
JF - Journal of Systems Architecture
M1 - 101758
ER -