tech-kern archive

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

Re: pserialize(9) vs. TAILQ



On 23 Nov, 2014, at 01:01 , Martin Husemann <martin%duskware.de@localhost> wrote:

> On Sat, Nov 22, 2014 at 01:24:42PM +0800, Dennis Ferguson wrote:
>> I'll guess one problem is in sparc/mutex.h, here:
>> 
>>    #define MUTEX_RECEIVE(mtx)              /* nothing */
>>    #define MUTEX_GIVE(mtx)                 /* nothing */
>> 
>> This works with TSO, but with RMO they need to somehow generate
>> hardware memory barriers.  See arm/mutex.h for an example with
>> them filled in.
> 
> Or src/sys/arch/sparc64/include/mutex.h - IIRC sparc v8 and earlier do not
> have RMO.

Ah, got it.  I'd now guess that in

   src/common/lib/libc/arch/sparc64/atomic/membar_ops.S

this comment

    /* These assume Total Store Order (TSO) */

suggests the problem.

Dennis Ferguson


Home | Main Index | Thread Index | Old Index