[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160601135214.GC30064@insomnia>
Date: Wed, 1 Jun 2016 21:52:14 +0800
From: Boqun Feng <boqun.feng@...il.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: linux-kernel@...r.kernel.org, torvalds@...ux-foundation.org,
manfred@...orfullife.com, dave@...olabs.net,
paulmck@...ux.vnet.ibm.com, will.deacon@....com,
Waiman.Long@....com, tj@...nel.org, pablo@...filter.org,
kaber@...sh.net, davem@...emloft.net, oleg@...hat.com,
netfilter-devel@...r.kernel.org, sasha.levin@...cle.com,
hofrat@...dl.org
Subject: Re: [PATCH -v3 3/8] locking: Introduce smp_acquire__after_ctrl_dep
On Tue, May 31, 2016 at 11:41:37AM +0200, Peter Zijlstra wrote:
[snip]
> @@ -260,16 +260,6 @@ static void sem_rcu_free(struct rcu_head
> }
>
> /*
> - * spin_unlock_wait() and !spin_is_locked() are not memory barriers, they
> - * are only control barriers.
> - * The code must pair with spin_unlock(&sem->lock) or
> - * spin_unlock(&sem_perm.lock), thus just the control barrier is insufficient.
> - *
> - * smp_rmb() is sufficient, as writes cannot pass the control barrier.
> - */
> -#define ipc_smp_acquire__after_spin_is_unlocked() smp_rmb()
> -
> -/*
> * Wait until all currently ongoing simple ops have completed.
> * Caller must own sem_perm.lock.
> * New simple ops cannot start, because simple ops first check
> @@ -292,7 +282,7 @@ static void sem_wait_array(struct sem_ar
> sem = sma->sem_base + i;
> spin_unlock_wait(&sem->lock);
> }
> - ipc_smp_acquire__after_spin_is_unlocked();
> + smp_acquire__after_ctrl_dep();
I wonder whether we can kill this barrier after updating
spin_unlock_wait() to ACQUIRE?
Regards,
Boqun
> }
>
> /*
Download attachment "signature.asc" of type "application/pgp-signature" (474 bytes)
Powered by blists - more mailing lists