Abstract
Operating Systems (OSs) mediate across the hardware and software applications, leading to overall system service provision, but often sacrifice service robustness while favoring increasing feature richness and peripheral support. The OS interface to peripherals is implemented by components termed as Device Drivers (DDs). Unfortunately, despite extensive testing, DDs continue to constitute the prominent cause of system service failures.
To find DD’s weakness areas, this paper proposes a novel technique for profiling kernel mode DDs execution paths. Such profiles highlight the frequently used parts of a driver for a workload, helping identify redundant tests. The communication interfaces between the OS and DDs are simultaneously monitored, revealing the kernel functions invoked at runtime and the followed code paths. To highlight execution hotspots, a cluster analysis scheme using string similarity metrics is proposed to distribute the code paths into equivalence classes, reflecting the occurrence weights of both kernel functions and code paths.
This research has been supported, in part, by Microsoft Research, EU FP6 NoE ReSIST and DFG TUD GK-MM.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Mendonca, M., Neves, N.: Robustness testing of the Windows DDK. In: Dependable Systems and Networks (DSN), June 2007, pp. 554–564 (2007)
Swift, M.M., Bershad, B.N., Levy, H.M.: Improving the reliability of commodity operating systems. ACM Transactions on Computer Systems 23(1), 77–110 (2005)
Ganapathi, A., Ganapathi, V., Patterson, D.: Windows XP kernel crash analysis. In: Large Installation System Administration Conference (LISA), pp. 12–22 (2006)
Albinet, A., Arlat, J., Fabre, J.C.: Characterization of the impact of faulty drivers on the robustness of the Linux kernel. In: Dependable Systems and Networks (DSN), pp. 867–876 (2004)
Arlat, J., Fabre, J.C., Rodriguez, M.: Dependability of COTS microkernel-based systems. IEEE Transactions on Computers 51(2), 138–163 (2002)
Chou, A., Yang, J., Chelf, B., Hallem, S., Engler, D.R.: An empirical study of operating system errors. In: Symposium on Operating Systems Principles (SOSP), pp. 73–88 (2001)
Duraes, J., Madeira, H.: Multidimensional characterization of the impact of faulty drivers on the operating systems behavior. IEICE Transactions on Information and Systems 86(12), 2563–2570 (2003)
Murphy, B., Garzia, M., Suri, N.: Closing the gap in failure analysis. In: Dependable Systems and Networks (DSN), pp. 59–61 (2006)
Johansson, A., Sârbu, A., Jhumka, A., Suri, N.: On enhancing the robustness of commercial operating systems. In: Malek, M., Reitenspiess, M., Kaiser, J. (eds.) ISAS 2004. LNCS, vol. 3335, pp. 148–159. Springer, Heidelberg (2005)
Johansson, A., Suri, N.: Error propagation profiling of operating systems. In: International Conference on Dependable Systems and Networks (DSN), pp. 86–95 (2005)
Sârbu, C., Johansson, A., Fraikin, F., Suri, N.: Improving robustness testing of COTS OS extensions. In: Penkler, D., Reitenspiess, M., Tam, F. (eds.) ISAS 2006. LNCS, vol. 4328, pp. 120–139. Springer, Heidelberg (2006)
Sârbu, C., Suri, N.: Runtime behavior-based profiling of OS drivers. Technical report, TR-TUD-DEEDS-05-02-2007 (2007), http://www.deeds.informatik.tu-darmstadt.de/research/TR/TR-TUD-DEEDS-05-02-2007-Sarbu.pdf
Weyuker, E.J., Jeng, B.: Analyzing partition testing strategies. IEEE Transactions on Software Engineering 17(7), 703–711 (1991)
Weyuker, E.J.: Using operational distributions to judge testing progress. In: ACM Symposium on Applied Computing, pp. 1118–1122. ACM Press, New York (2003)
Möller, K.H., Paulish, D.: An empirical investigation of software fault distribution. In: First International Software Metrics Symposium (METRIC), May 1993, pp. 82–90 (1993)
Johansson, A., Suri, N., Murphy, B.: On the impact of injection triggers for os robustness evaluation. In: International Symposium on Software Reliability Engineering (ISSTA), pp. 127–136 (2007)
Ball, T., Larus, J.R.: Efficient path profiling. In: MICRO-29, pp. 46–57 (1996)
Larus, J.R.: Whole program paths. ACM SIGPLAN 34, 259–269 (1999)
Leon, D., Podgurski, A.: A comparison of coverage-based and distribution-based techniques for filtering and prioritizing test cases. In: 14th International Symposium on Software Reliability Engineering (ISSRE), pp. 442–453 (2003)
Oney, W.: Programming the MS Windows Driver Model. Microsoft Press, Redmond (2003)
Microsoft Corporation, Visual Studio, Microsoft portable executable and common object file format specification. Technical report (May 2006), http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx
Hunt, G., Brubacher, D.: Detours: Binary interception of Win32 functions. In: Proceedings of the 3rd USENIX Windows NT Symposium, July 1999, pp. 135–144 (1999)
Vasudevan, A., Yerraballi, R.: Spike: Engineering malware analysis tools using unobtrusive binary-instrumentation. In: Australasian Computer Science Conference (ACSC), pp. 311–320 (2006)
Ihaka, R., Gentleman, R.: R: A language for data analysis and graphics. Journal of Computational and Graphical Statistics 5(3), 299–314 (1996)
Cohen, W.W., Pradeep, R., E., F.S.: A comparison of string distance metrics for name-matching tasks. In: International Joint Conference on Artificial Intelligence (IJCAI), pp. 73–78 (2003)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sârbu, C., Johansson, A., Suri, N. (2008). Execution Path Profiling for OS Device Drivers: Viability and Methodology. In: Nanya, T., Maruyama, F., Pataricza, A., Malek, M. (eds) Service Availability. ISAS 2008. Lecture Notes in Computer Science, vol 5017. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68129-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-68129-8_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-68128-1
Online ISBN: 978-3-540-68129-8
eBook Packages: Computer ScienceComputer Science (R0)