Technical Report MSC-2015-21

Title: I/O Page Faults
Authors: Ilya Lesokhin
Supervisors: Dan Tsafrir
PDFCurrently accessibly only within the Technion network
Abstract: Virtual memory is used in most modern general purpose computer systems. This invention simplifies systems and increases their usability and efficiency. In recent years, I/O devices also started using virtual addresses. However support for I/O page faults is still lacking. I/O devices are designed under the assumption that the virtual addresses they are using are always valid and the software is forced to makes sure that this is indeed the case. This deficiency deprives one class of software from the benefits of virtual memory: it prevents memory overcommitment, complicates the programming model and hinders administration. The effected software class is exclusively comprised of software that performs direct I/O, which is the act of accessing I/O devices without any involvement of intermediary privileged software such as the operating system (OS) kernel or the hypervisor. Prominent example of this are direct device assignment of SR-IOV (single root I/O virtualization) instances in virtualization scenarios and kernel bypassing access to I/O devices by user space applications.

This thesis presents a working hardware and software support for I/O page faults (IOPFs) in a network interface card (NIC). It described the challenges involved in implementing this support and demonstrates that an IOPF-enabled NIC allows for efficient memory overcommitment.

CopyrightThe above paper is copyright by the Technion, Author(s), or others. Please contact the author(s) for more information

Remark: Any link to this technical report should be to this page (, rather than to the URL of the PDF files directly. The latter URLs may change without notice.

To the list of the MSC technical reports of 2015
To the main CS technical reports page

Computer science department, Technion