M.Sc Thesis

M.Sc StudentLesokhin Ilya
SubjectI/O Page Faults
DepartmentDepartment of Computer Science
Supervisor ASSOCIATE PROF. Dan Tsafrir
Full Thesis textFull thesis text - English Version


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 
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.