Demonstrate good backtracing
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
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.