Command queue-aware host I/O stack for mobile flash storage

Kyuhwa Han, Dongkun Shin

Research output: Contribution to journalArticlepeer-review

8 Scopus citations

Abstract

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.

Original languageEnglish
Article number101758
JournalJournal of Systems Architecture
Volume109
DOIs
StatePublished - Oct 2020
Externally publishedYes

Keywords

  • Command queue
  • Consumer electronics
  • Flash memory
  • Scheduling
  • System software

Fingerprint

Dive into the research topics of 'Command queue-aware host I/O stack for mobile flash storage'. Together they form a unique fingerprint.

Cite this