skip to main content
10.1145/1272996.1273031acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
Article

Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels

Published:21 March 2007Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cowan, C., Autrey, T., Krasic, C., Pu, C., and Walpole, J. Fast concurrent dynamic linking for an adaptive operating system, 1996.Google ScholarGoogle Scholar
  5. David J. Pearce. Instrumenting the Linux Kernel, MS thesis, 2000.Google ScholarGoogle Scholar
  6. Hicks, M. Dynamic Software Updating. PhD thesis, Department of Computer and Information Science, University of Pennsylvania, August 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. Hollingsworth, J. K., Miller, B. P., and Cargille, J. Dynamic program instrumentation for scalable performance tools. 1994 Scalable High Performance Computing (May 1994).Google ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Lee., I. DYMOS: A Dynamic Modification System. PhD thesis, University of Wisconsin, Department of Computer Science, Madison, April 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Linus Torvalds and William Lee Irwin III. Make pipe data be a circular list of pages. LWN.net (January 2005).Google ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. Maebe, J., Ronsse, M., and Bosschere, K. D. Instrumenting JVMs at the machine code level. In 3rd PA3CT-symposium (September 2003).Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ryu, K. D., and Hollingsworth, J. K. Linger-Longer: Fine-Grain Cycle Stealing for Networks of Workstations. In Supercomputing '98 (November 1998). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. Srivastava, A., Edwards, A., and Vo, H. Vulcan: Binary transformation in a distributed environment. Tech. Rep MSR-TR-2001-50, April 2001.Google ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          EuroSys '07: Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
          March 2007
          431 pages
          ISBN:9781595936363
          DOI:10.1145/1272996
          • cover image ACM SIGOPS Operating Systems Review
            ACM SIGOPS Operating Systems Review  Volume 41, Issue 3
            EuroSys'07 Conference Proceedings
            June 2007
            386 pages
            ISSN:0163-5980
            DOI:10.1145/1272998
            Issue’s Table of Contents

          Copyright © 2007 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 21 March 2007

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate241of1,308submissions,18%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!