Linux Kernel Compaction through Cold Code Swapping

  • Authors:
  • Dominique Chanet;Javier Cabezas;Enric Morancho;Nacho Navarro;Koen Bosschere

  • Affiliations:
  • Department of Electronics and Information Systems, Ghent University, Ghent, Belgium B-9000;Department of Computer Architecture, Technical University of Catalonia, Barcelona, Spain E-08034;Department of Computer Architecture, Technical University of Catalonia, Barcelona, Spain E-08034;Department of Computer Architecture, Technical University of Catalonia, Barcelona, Spain E-08034;Department of Electronics and Information Systems, Ghent University, Ghent, Belgium B-9000

  • Venue:
  • Transactions on High-Performance Embedded Architectures and Compilers II
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

There is a growing trend to use general-purpose operating systems like Linux in embedded systems. Previous research focused on using compaction and specialization techniques to adapt a general-purpose OS to the memory-constrained environment presented by most embedded systems. However, there is still room for improvement: it has been shown that even after application of the aforementioned techniques more than 50% of the kernel code remains unexecuted under normal system operation. We introduce a new technique that reduces the Linux kernel code memory footprint through on-demand code loading of infrequently executed code, for systems that support virtual memory. In this paper, we describe our general approach, and we study code placement algorithms to minimize the performance impact of the code loading. A code size reduction of 68% is achieved, with a 2.2% execution speedup of the system-mode execution time, for a case study based on the MediaBench II benchmark suite.