Re: [PATCH RFC] locking: Add volatile to arch_spinlock_t structures

From: Paul E. McKenney
Date: Thu Dec 04 2014 - 17:08:15 EST


On Thu, Dec 04, 2014 at 09:45:46PM +0000, One Thousand Gnomes wrote:
> > anywhere in that translation unit. After all, any non-static function
> > in that translation unit might be called from some other translation
> > unit that -did- use locking or whatever.
> >
> > I will let you know how it goes. ;-)
>
> It breaks DEC10 ;-)

To say nothing of CDC 6600 systems lacking the compare-move unit. ;-)

> If there is kickback over things like optimisation perhaps the gcc
> maintainers could at least consider something like
>
> int __attribute((threadsafe)) fred;
>
> ??

Not needed for recent gcc versions -- both the C11 and C++11 standards
require that different threads be permitted to independently access
different variables, where "different" means "no bits of the two variables
residing in the same byte". From what I can see, this would mean that
a conforming pre-EV56 Alpha C11 compiler would need to use LDL_L and
STL_C to carry out 8-bit and 16-bit stores. ;-)

Thanx, Paul

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/