64 bit sync primitives

Registered by Michael Hope

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:
milestone icon 4.6-2011.12
Started by
Dr. David Alan Gilbert
Completed by
Michael Hope

Related branches

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.

This blueprint contains Public information 
Everyone can see this information.