[RFC libdrm] Use __sync_val_compare_and_swap to implement DRM_CAS
Michel Dänzer
michel at daenzer.net
Fri Oct 29 00:07:47 PDT 2010
On Don, 2010-10-28 at 19:59 -0400, Matt Turner wrote:
> Can we use gcc's __sync_val_compare_and_swap to implement DRM_CAS?
> (If so, do we actually need the __sync_val version, or can we use
> __sync_bool?)
>
> I just threw the patch together in two minutes, so I've got no idea
> if it's right, just looking for feedback. The purpose of this is to
> remove a lot of inline assembly that hasn't been touched since the
> file was added in 2004, including some awesome already-assembled
> SPARC instructions.
Given that DRM_CAS is part of a kernel<->userspace ABI and is only used
for the DRI1 'hardware lock', I suspect this is more risky than it's
worth. At the least though, it would need to be verified for each
architecture which has a specific DRM_CAS implementation now that this
change doesn't result in DRM_CAS always failing and the HW lock falling
back to calling the slow path ioctl every time.
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
More information about the dri-devel
mailing list