Ilya Lesokhin, M.Sc. Thesis Seminar
Wednesday, 29.4.2015, 12:30
Most modern computer systems use demand paging based virtual memory.
Address translation for virtual memory support in I/O devices is known
to be useful. It allows SR-IOV (single root I/O virtualization) direct
device assignment in virtualization scenarios and kernel bypassing
access to I/O devices by user space applications. However, these
mechanisms require memory pinning and strict, static memory allocation
as they do not support demand paging. This deficiency prevents memory
overcommitment, complicates the programming model and hinders
administration. This paper presents a working hardware and software
support for I/O page faults (IOPFs) and demand paging in a network
interface card (NIC).
Demand paging by the I/O devices imposes unique challenges, which
differ significantly from the demand paging on the CPU. After tackling
these challenges, our IOPF enabled NIC allows for efficient memory
over-commitment. In a number of real world benchmarks, the memory
over-commitment improve performance by 1.2x--1.9x compared to the same
systems using memory pinning.