Run-time Hardware and Software Co-Monitoring
Project Overview:
People:
Newly Found Bugs:
This bug happens after the e100 card initialization or a reset. The driver ignored the status of the device and went ahead to issue command. A potential state mismatch occurs between hardware and driver, which could cause problems from input mistakes to driver crashes. Bug is reported to and confirmed by Microsoft (Jan 2010).
This bug happens when device is in error states but the driver proceeds as if the device functions properly. Bug is reported to and confirmed by Microsoft (Jan 2010).
This bug happens during the USB device discovery stage when the USB host controller makes the Get Descriptor request. The bug only happens when client USB device acts in composite mode with multiple end points and with a long (256 bytes) USB device descriptor. Bug was reported and confirmed by Linux USB-Devel List (Sep 2009).
Previous Known Bugs:
We also experiment with previous known bugs in device drivers to test and validate our work. To explore the benefit of run-time bug detection, we focus on the bugs that are tightly related to hardware status and potentially can be mistakenly identified as transient hardware failures. We also expect that these bugs could be detected by monitoring both hardware and software status. We made efforts to mine the previously found bugs found in linux device drivers that are potentially difficult to separate from transient hardware failures. Our initial effect of bug mining from Linux driver updates is based on the well-known linux drivers for Intel PCI Ethernet Card. A list of bugs used in our study is presented here:
1. IO Control Hub (ICH) bug at half-duplex mode
4. violation of hardware action sequence with write actions to MID control register
5. driver bug that fails to clear the transmission queue
6. violation of hardware action sequence with DMA sync and Memory compare
7. driver bug with write flush and lock sequence