urcu: Add extra "engineering safety factor" memory barrier in update_counter_and_wait()
[urcu.git] / urcu-qsbr.c
index 25074d09063a60ae5c94a17b18cd9d241b1e2fb9..c678d38779eb683f1f78872a87e853a4c281f43d 100644 (file)
@@ -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.
+        *
+        * 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.
This page took 0.022461 seconds and 4 git commands to generate.