Memory Footprint

Registered by Duncan McGreggor on 2010-03-26

Discuss possibilities for reducing memory footprint to improve performance, and identify useful optimisations and investigations which should be carried out.

Blueprint information

Steve Langasek
John Rigby
Needs approval
Dave Martin
Series goal:
Accepted for maverick
Milestone target:
milestone icon ubuntu-10.10-beta
Started by
Dave Martin on 2010-06-08


[dmart 2010-07-10]: Investigate mklibs is POSTPONED as vorlon reckons this isn't a promising line of enquiry for now -- not applicable to general-purpose environments)
[asac 22 Jun 10]: with davem being gone for a few weeks still, nothing will happen for alpha-2; targetting investigation items for alpha-3 and beta for implementation pieces accordingly. Please adjust and talk to me or approver if you think that targetting is completely off

Preliminary investigation is done; now focusing on manual profiling and basic bootchart integration to identify Ubuntu/linaro components which need attention. No systemic changes expected to land for 10.11.
Bootchart packages with experimental memory usage logging support can be found in Dave Martin's PPA: see

Work items (maverick-alpha-3):
[cjwatson] pointers on how to use compiler wrappers to achieve feedback-directed optimisation: DONE
[dave-martin-arm] investigate exmap-console, sar and frysk: DONE
[dave-martin-arm] investigate atop and smem: DONE
[guillaume-letellier] get feedback from Julian Seward about availability of callgrind: DONE
[dave-martin-arm] investigate tools for dead code removal: POSTPONED
[dave-martin-arm] investigate how we could do coverage measurement to assess the amount of unused code/data in binaries: POSTPONED
[dave-martin-arm] investigate mklibs: POSTPONED

Work items (ubuntu-10.10-beta):
[dave-martin-arm] investigate extending bootchart to measure memory usage: INPROGRESS
[dave-martin-arm] kernel tuning for optimised memory utilization: POSTPONED
[dave-martin-arm] determine which reduction efforts should go into Maverick: DONE
[dave-martin-arm] document what reduction efforts should be investigated in Maverick+1: TODO
[dave-martin-arm] select target profile: DONE
[dave-martin-arm] define "memory footprint": DONE

Work items (ubuntu-10.10):
[dave-martin-arm] investigate compiler options (-Os): DONE

Later work items:
[richard-earnshaw] follow up with codesourcery about memory optimisation including hot/cold partitioning support: TODO
[richard-earnshaw] follow up on: (not available yet for ARMv7 but being worked on): TODO

Even later work items:

[paul-e-mckenney] merge SRCU into tree/tiny implementations (should reduce memory footprint, especially for UP kernels): TODO

Removed work items:
[dave-martin-arm] investigate the maemo sp-memusage and sp-smaps packages for integration in linaro+ubuntu [will revisit later if useful, but we have enough basic tools in Ubuntu for now]
[paul-e-mckenney] tiny implementation of preemptible RCU (currently only large-memory-footprint tree-based implementation): [Moved to]
[paul-e-mckenney] preemptible RCU priority boosting (reduce memory footprint due to preempted RCU readers): [Moved to]


Work Items

Dependency tree

* Blueprints in grey have been implemented.