Hardware failures are a major cause of computer system crashes. To improve system reliability, making device drivers sufficiently robust to tolerate hardware failures is important. Unfortunately, testing device drivers against hardware failures is not easy because hardware failures must be artificially produced in a controlled manner. Prior work has required source code, OS-dependent implementation efforts, or special virtual environments for testing in which it is difficult to find problems that only occur in real environments. This paper presents FaultVisor, a bare-metal hypervisor specialized for testing device drivers. FaultVisor injects pseudo hardware failures by modifying access to real hardware using the hypervisor layer, allowing closed-source and OS-independent driver testing in real environments, and easy insertion of test systems into existing systems. In our evaluation, FaultVisor discovered 41 fault patterns that disclose problems in device drivers, 30 of which led to critical system failures.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.