System Size Auto-Reduction

From eLinux.org
Revision as of 15:01, 6 April 2013 by Tim Bird (Talk | contribs)

Jump to: navigation, search

This page has notes and an outline for Tim Bird's Linux Auto-Reduction research.


Research Areas

LTO

global constraints

syscall elimination

  • scan file system
  • create report of used and unused system calls
  • mark syscalls unused in kernel
    • arch/arm/kernel/calls.S (and arch/arm/kernel/entry-common.S
  • make sure unused syscalls are not __attribute__(externally_visible)
    • technique of asmlinkage_<syscall>
  • use LTO to eliminate calls
  • results: 50K-90K

ARM stack reduction

  • 4k stacks
  • stack extensions

cold code compression

Report existing research

link-time rewriting

Report existing research

Talk outline

This talk will be presented at LinuxCon Japan 2013:

Title

Self-Introduction

  • I am Tim Bird
  • Now working at Sony Mobile
  • Researching system size for many years
  • Long background in extremely small systems
    • NetWare Lite - file and print server on DOS in 50K (in 1991)

The problem of Bloat

  • Software bloat occurs because systems are built with more software than is really needed for a given task
  • Open Source software meets the needs of thousands of different systems
    • Linux scales from tiny sensors to supercomputers (extreme SMP and high-end clusters)
    • Linux supports many, many features, only some of which are configurable
  • Software must be generalized for many use cases

Bloat (cont.)

  • In desktop or server, virtual memory makes this not so important (for user-space programs)
    • Only working set of program is loaded - pages are loaded on demand
  • For kernel, all pages are always loaded

Tiny Distribution

  • poky-tiny distribution (yocto project)
  • see
  • Good for testing and further research