public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] srcu: API for barrier after srcu read unlock
@ 2013-11-04 20:36 Michael S. Tsirkin
  2013-11-04 20:36 ` [PATCH 2/2] kvm: optimize out smp_mb after srcu_read_unlock Michael S. Tsirkin
  2013-11-04 20:55 ` [PATCH 1/2] srcu: API for barrier after srcu read unlock Paul E. McKenney
  0 siblings, 2 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2013-11-04 20:36 UTC (permalink / raw)
  To: linux-kernel; +Cc: Paul E. McKenney, Lai Jiangshan

srcu read lock/unlock include a full memory barrier
but that's an implementation detail.
Add an API for make memory fencing explicit for
users that need this barrier, to make sure we
can change it as needed without breaking all users.

Acked-by: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/linux/srcu.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/include/linux/srcu.h b/include/linux/srcu.h
index c114614..9b058ee 100644
--- a/include/linux/srcu.h
+++ b/include/linux/srcu.h
@@ -237,4 +237,18 @@ static inline void srcu_read_unlock(struct srcu_struct *sp, int idx)
 	__srcu_read_unlock(sp, idx);
 }
 
+/**
+ * smp_mb__after_srcu_read_unlock - ensure full ordering after srcu_read_unlock
+ *
+ * Converts the preceding srcu_read_unlock into a two-way memory barrier.
+ *
+ * Call this after srcu_read_unlock, to guarantee that all memory operations
+ * that occur after smp_mb__after_srcu_read_unlock will appear to happen after
+ * the preceding srcu_read_unlock.
+ */
+static inline void smp_mb__after_srcu_read_unlock(void)
+{
+	/* __srcu_read_unlock has smp_mb() internally so nothing to do here. */
+}
+
 #endif
-- 
MST


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-11-06 20:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-04 20:36 [PATCH 1/2] srcu: API for barrier after srcu read unlock Michael S. Tsirkin
2013-11-04 20:36 ` [PATCH 2/2] kvm: optimize out smp_mb after srcu_read_unlock Michael S. Tsirkin
2013-11-04 20:55 ` [PATCH 1/2] srcu: API for barrier after srcu read unlock Paul E. McKenney
2013-11-06 15:00   ` Lai Jiangshan
2013-11-06 20:00     ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox