64 bit sync primitives
The TSC have asked for the GCC sync primitives to be widened by adding 64 bit operations. Discuss the GCC, libgcc, kernel, and GLIBC impact. Discuss any other libraries that might make use of this. Output is a plan for adding this to all areas.
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- High
- Drafter:
- Dr. David Alan Gilbert
- Direction:
- Approved
- Assignee:
- Dr. David Alan Gilbert
- Definition:
- Approved
- Series goal:
- Accepted for 4.6
- Implementation:
- Implemented
- Milestone target:
- 4.6-2011.12
- Started by
- Dr. David Alan Gilbert
- Completed by
- Michael Hope
Related branches
Related bugs
Sprints
Whiteboard
Meta:
Headline: Discuss the GCC, libgcc, kernel, and GLIBC impact of widening sync primitives by adding 64 bit operations. Also, Discuss any other libraries that might make use of this.
Acceptance: Documented plan for widening sync primitives
Eglibc turns out not to need any change (it doesn't use any 64bit atomics although it has a place holder) and doesn't expose it to user space.
Can't find anything other than membase that uses it on systems where long and void* are 32bit.
Work Items
Work items:
Add implementation & test case for gcc primitives: DONE
Add fallbacks in libgcc: DONE
Add eglibc implementation & test case for 1st primitive: DONE
Fix QEmu for kernel helper: DONE
Check kernel implementation is complete: DONE
Upstream QEmu changes: DONE
Work items for 4.6-2011.11:
Build & test membase as example use case: INPROGRESS
Have a brief look for other potential users: DONE
Check it doesn't break builds for pre-v7: TODO
Upstream gcc changes: DONE
Dependency tree
* Blueprints in grey have been implemented.