tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: mutex(9) on sparc64 RMO [was Re: pserialize(9) vs. TAILQ]
On Tue, Nov 25, 2014 at 2:19 AM, Taylor R Campbell
<campbell+netbsd-tech-kern%mumble.net@localhost> wrote:
> Date: Mon, 24 Nov 2014 16:44:41 +0000 (UTC)
> From: Eduardo Horvath <eeh%NetBSD.org@localhost>
>
> I enhanced membar_ops with proper memory barriers and then was looking at
> the mutex code. Unfortunately, I didn't get very far. It seemed at the
> time that the mutex code has two hooks for memory barriers after the
> atomic operations, however it's missing memory barrier hooks to ensure
> consistency before accessing the lock.
>
> What exactly is the consistency you need before accessing the lock?
Besides that, other necessary memory barriers I have figured out:
- cpu_simple_lock
- lock/unlock should ensure membar_enter/membar_exit equivalent
- mutex
- spin
- enter/exit should ensure membar_enter/membar_exit equivalent
- adaptive
- Provide MUTEX_RECEIVE, MUTEX_GIVE -> membar_enter, membar_exit
- rw
- enter/exit should ensure membar_enter/membar_exit equivalent
- membar_ops
- Implement these
- Other synchronization
- Relies on membar_ops, should work if membar_ops is done right
I'd start with using full-sync everywhere and see what happens.
Home |
Main Index |
Thread Index |
Old Index