projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
urcu: Add extra "engineering safety factor" memory barrier in update_counter_and_wait()
[urcu.git]
/
urcu-qsbr.c
diff --git
a/urcu-qsbr.c
b/urcu-qsbr.c
index 25074d09063a60ae5c94a17b18cd9d241b1e2fb9..c678d38779eb683f1f78872a87e853a4c281f43d 100644
(file)
--- a/
urcu-qsbr.c
+++ b/
urcu-qsbr.c
@@
-124,8
+124,12
@@
static void update_counter_and_wait(void)
* Enforce compiler-order of store to rcu_gp_ctr before before
* load rcu_reader ctr.
* This ensures synchronize_rcu() cannot be starved by readers.
* Enforce compiler-order of store to rcu_gp_ctr before before
* load rcu_reader ctr.
* This ensures synchronize_rcu() cannot be starved by readers.
+ *
+ * Adding a smp_mb() which is _not_ formally required, but makes the
+ * model easier to understand. It does not have a big performance impact
+ * anyway, given this is the write-side.
*/
*/
-
barrier
();
+
smp_mb
();
/*
* Wait for each thread rcu_reader_qs_gp count to become 0.
/*
* Wait for each thread rcu_reader_qs_gp count to become 0.
This page took
0.022707 seconds
and
4
git commands to generate.