Really? How would that work? I tried with uint128 but could not get the
compiler to do the right thing.
Yes. You may want to use cmpxchg_double on 32 bit entities for backwards
compatibilities sake or any other smaller unit size. But those could also
be realized using this_cpu_cmpxchg_<double the size> by just aggregating
the amount.
If we can indeed pass 128 bit entities (as claimed by hpa) via registers
then the logical choice would be to do
this_cpu_cmpxchg_16(pcp, old, new)
instead of cmpxchg_double. All parameters would have to be bit.
Then we can avoid the strange cmpxchg_double semantics and can completely
avoid introducing those.
--