Demonstrate good backtracing

Registered by Michael Hope

Take the libunwind support added in last cycle and do a proof-of-concept implementation in two programs such as callgrind and some type of post-mortem bug reporter.

This cycle should end with a usable, correct libunwind that can be used for backtracing in many programs. Discuss what programs currently have no or broken backtracing on ARM, what already uses libunwind, what we should prioritise this cycle, and the future performance issues.

Blueprint information

Status:
Complete
Approver:
Michael Hope
Priority:
Medium
Drafter:
Ken Werner
Direction:
Needs approval
Assignee:
Ken Werner
Definition:
Approved
Series goal:
Accepted for trunk
Implementation:
Implemented
Milestone target:
None
Started by
Michael Hope
Completed by
Michael Hope

Related branches

Sprints

Whiteboard

Work items:
Decide on the programs to implement against: TODO
Discuss with upstream: TODO
Add -funwind to an example set of packages: DONE
Document the overhead of ARM unwind: DONE
Document the overhead of DWARF unwind: TODO
Add support to a crash dump tool: DONE
Demonstrate: TODO
Work with Ubuntu to turn unwind on by default: TODO

Work items (stage 2):
Propose changes to make profiling possible: TODO
Profile the performance and decide if it's acceptable: TODO
Upstream: TODO
Add support to a profiling tool: TODO
Demonstrate profiling tool: TODO
Upstream profiling tool: TODO

Work items (stage 3):
Design a method for faster backtracing: TODO
Demonstrate: TODO
Propose ABI changes to support: TODO

Note the extra cost in disk space and memory. Upper bound is 9% from the S390 work and perhaps from inside ARM from the original design.

Should callgrind be one of the tools?

Split into the crash dump and profiling blueprints.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.