Kernel Based Mechanisms for High Performance I/O
Evgeny Budilovsky, Sivan Toledo · 2013
This thesis deals with mechanisms that assist to improve I/O performance in Linux kernel. We focus on Linux kernel due to its enormous popularity and the openness of this platform. We begin by presenting the Linux I/O stack, the common storage protocols and the frameworks which are used to prototype storage devices. Next, in chapter two, we describe clever host-assisted hinting mechanism that uses RAM on the host to compensate for the small amount of RAM within the Solid State Disk (SSD). This mechanism is one of the key contributions to paper which was submitted to the 4th Annual International Systems and Storage Conference. The mechanism is implemented as an enhanced SCSI driver (kernel module) and prototyped using emulation of SSD device. Finally, in chapter three, we describe implementation of end-to-end I/O tracing tool which was born as a part of collaboration project with IBM Haifa Research Lab. This tool allows us to capture live I/O traces on Linux systems. Later we can use the collected traces to follow individual requests as they make their way through different layers of the Linux I/O stack. Working with this tool to generate and analyze traces, allows researchers to better understand various performance bottlenecks and assists them in finding ways to improve I/O performance on live systems.