Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: sparc64 vs. gcc 4.8



On Fri, 3 Oct 2014, Erik Fair wrote:

> However, if sparc64's memory barrier implementation has issues, that's certainly fundamental enough to require immediate attention. Eduardo, can you be more specific about what you thought was wrong with the existing implementation?

You misunderstand.  I'm not suggesting the sparc64 memory barrier 
implementation has issues.  I'm suggesting the mutex design itself has 
issues.  If you look at the way it's put together, it's designed around 
x86-style memory ordering and won't work with machines that have more 
relaxed memory semantics.  To fix this, the types and locations where the 
in the memory synchronization routines are called from the locking 
primitives needs to be changed.

The issues with gcc 4.8 may be completely unrelated to the locking issues, 
since we are running the kernel in TSO mode and the memory semantics 
should be similar to x86.  However, if the new compiler is more aggressive 
about instruction reordering, it may cause the flaws in the mutex design 
to manifest themselves.  I'm just suggesting this is a good place to start 
looking for problems, especially since we run userland with more relaxed 
memory semantics.

Eduardo


Home | Main Index | Thread Index | Old Index