DevT: Let the Device Talk
Chander Bhushan Gupta · 2020
With the advancement in the Storage systems, the complexity to debug and diagnose the software stack will keep increasing. Every year with the addition of new features to the software stack makes the system large and complex. For example, the Linux kernel has 27.8 million LoC and it keeps on growing every year with around 800k commits. One example of complex debugging is the incident that took place at the Algolia data center where Samsung SSDs were blamed whereas the issued lied with the kernel. To resolve this problem, engineers struggled over a month to figure out the actual area of the fault. Many efforts have been made by the storage community to build tracing tools to address such problems. However, they don’t support the capture of I/O commands at the device level without any real hardware. To overcome such problem, DevT provides an approach to capture the device commands while leveraging the virtualization. It utilizes the virtual machine and effective emulator to accomplish the tracing task which can help diagnose the problem quickly and effectively at the device level. It generates overall runtime overhead of 0.01% over native run and hence this makes it more efficient with less overhead.