ABSTRACT
Continuously running systems require kernel software updates applied to them without downtime. Facilitating fast reboots, or delaying an update may not be a suitable solution in many environments, especially in pay-per-use high-performance computing clusters and mission critical systems. Such systems will not reap the benefits of new kernel features, and will continue to operate with kernel security holes unpatched, at least until the next scheduled maintenance downtime. To address these problems we developed an on-the-fly kernel updating system that enables commodity operating systems to gain adaptive and mutative capabilities without kernel recompilation or reboot. Our system, DynAMOS, employs a novel and efficient dynamic code instrumentation technique termed adaptive function cloning. Execution flow can be switched adaptively among multiple editions of functions, possibly concurrently running. This approach becomes the foundation for dynamic replacement of non-quiescent kernel subsystems when the timeliness of an update depends on synchronization of multiple kernel paths. We illustrate our experience by dynamically updating core subsystems of the Linux kernel.
- Appavoo, J., Hui, K., Soules, C. A. N., Wisniewski, R. W., Silva, D. D., Krieger, O., Auslander, M., Edelsohn, D., Gamsa, B., Ganger, G. R., McKenney, P., Ostrowski, M., Rosenburg, B., Stumm, M., and Xenidis, J. Enabling autonomic system software with hot-swapping. IBM Systems Journal 42, 1 (2003), 60--76. Google Scholar
Digital Library
- Baumann, A., Heiser, G., Appavoo, J., Silva, D. D., Krieger, O., and Wisniewski, R. W. Providing Dynamic Update in an Operating System. In USENIX Symposium on Operating Systems Design and Implementation (April 2005), USENIX Association. Google Scholar
Digital Library
- Cantrill, B., Shapiro, M. W., and Leventhal, A. H. Dynamic instrumentation of production systems. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (2004). Google Scholar
Digital Library
- Cowan, C., Autrey, T., Krasic, C., Pu, C., and Walpole, J. Fast concurrent dynamic linking for an adaptive operating system, 1996.Google Scholar
- David J. Pearce. Instrumenting the Linux Kernel, MS thesis, 2000.Google Scholar
- Hicks, M. Dynamic Software Updating. PhD thesis, Department of Computer and Information Science, University of Pennsylvania, August 2001. Google Scholar
Digital Library
- Hicks, M., Moore, J. T., and Nettles, S. Dynamic software updating. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (June 2001), ACM, pp. 13--23. Google Scholar
Digital Library
- Hollingsworth, J. K., Miller, B. P., and Cargille, J. Dynamic program instrumentation for scalable performance tools. 1994 Scalable High Performance Computing (May 1994).Google Scholar
- Hunt, G., and Brubacher, D. Detours: Binary Interception of Win32 Functions. In Proceedings of the 3rd USENIX Windows NT Symposium (July 1999), pp. 135--143. Google Scholar
Digital Library
- Larus, J., and Schnarr, E. EEL: Machine-Independent Executable Editing. In ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation (PLDI) (June 1995), ACM SIGPLAN. Google Scholar
Digital Library
- Lee., I. DYMOS: A Dynamic Modification System. PhD thesis, University of Wisconsin, Department of Computer Science, Madison, April 1983. Google Scholar
Digital Library
- Linus Torvalds and William Lee Irwin III. Make pipe data be a circular list of pages. LWN.net (January 2005).Google Scholar
- Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V. J., and Hazelwood, K. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In PLID 2005 (June 2005). Google Scholar
Digital Library
- Maebe, J., and Bosschere, K. D. Instrumenting self-modifying code. In Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003) (September 2003).Google Scholar
- Maebe, J., Ronsse, M., and Bosschere, K. D. Diota: Dynamic instrumentation, optimization and transformation of applications. In Compendium of Workshops and Tutorials held in conjuction with PACT '02 (2002).Google Scholar
- Maebe, J., Ronsse, M., and Bosschere, K. D. Instrumenting JVMs at the machine code level. In 3rd PA3CT-symposium (September 2003).Google Scholar
- Neamtiu, I., Hicks, M., Stoyle, G., and Oriol, M. Practical Dynamic Software Updating for C. In Proceedings of the ACM Conference on Programming Language Design and Implementation (PLDI) (June 2006). Google Scholar
Digital Library
- Pearce, D. J., Kelly, P. H. J., Field, T., and Harder, U. GILK: A Dynamic Instrumentation Tool for the Linux Kernel. In Computer Performance Evaluation / TOOLS (2002), pp. 220--226. Google Scholar
Digital Library
- Ryu, K. D., and Hollingsworth, J. K. Linger-Longer: Fine-Grain Cycle Stealing for Networks of Workstations. In Supercomputing '98 (November 1998). Google Scholar
Digital Library
- Ryu, K. D., Pachapurkar, N., and Fong, L. L. Adaptive memory paging for efficient gang scheduling of parallel applications. In IPDPS 2004 (April 2004).Google Scholar
- Seltzer, M. I., and Small, C. Self-monitoring and self-adapting operating systems. Proceedings of the Sixth workshop on Hot Topics in Operating Systems (1997). Google Scholar
Digital Library
- Srivastava, A., Edwards, A., and Vo, H. Vulcan: Binary transformation in a distributed environment. Tech. Rep MSR-TR-2001-50, April 2001.Google Scholar
- Srivastava, A., and Eustace, A. ATOM: A System for Building Customized Program Analysis Tools. In ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation (PLDI) (June 1994), ACM SIGPLAN. Google Scholar
Digital Library
- Tamches, A., and Miller, B. P. Fine-Grained Dynamic Instrumentation of Commodity Operating System Kernels. In Third Symposium on Operating System design and implementation (February 1999). Google Scholar
Digital Library
Index Terms
Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
Recommendations
Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
EuroSys'07 Conference ProceedingsContinuously running systems require kernel software updates applied to them without downtime. Facilitating fast reboots, or delaying an update may not be a suitable solution in many environments, especially in pay-per-use high-performance computing ...
Dynamic Software Updates for Accelerating Scientific Discovery
ICCS '09: Proceedings of the 9th International Conference on Computational Science: Part IDistributed parallel applications often run for hours or even days before arriving to a result. In the case of such long-running programs, the initial requirements could change after the program has started executing. To shorten the time it takes to ...






Comments