Signed-off-by: Paolo Bonzini <[email protected]>
---
        Not a correctness issue, and it will just save a syscall in
        rare cases.  Can be committed separately, or squashed in patch 8
        (that would be my favorite option), or left out altogether.

 urcu-call-rcu-impl.h |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/urcu-call-rcu-impl.h b/urcu-call-rcu-impl.h
index 165956e..c45928a 100644
--- a/urcu-call-rcu-impl.h
+++ b/urcu-call-rcu-impl.h
@@ -214,6 +214,9 @@ static void *call_rcu_thread(void *arg)
                                if (&crdp->cbs.head
                                    == _CMM_LOAD_SHARED(crdp->cbs.tail))
                                        break;
+                                /* False alarm... another bunch is ready.  */
+                               cmm_smp_mb();
+                               uatomic_or(&crdp->flags, URCU_CALL_RCU_BUSY);
                        }
                        while ((cbs = _CMM_LOAD_SHARED(crdp->cbs.head)) == NULL)
                                poll(NULL, 0, 1);
-- 
1.7.4.4


_______________________________________________
ltt-dev mailing list
[email protected]
http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev

Reply via email to