call_rcu: remove head field alignement, explain wfcqueue motivation
[urcu.git] / urcu-call-rcu-impl.h
index cf65992f4e57a8bc86187744271c5ee4c58b6d26..4e5879f381eadc8ebacd2efd079bfa588ac41c4b 100644 (file)
 
 struct call_rcu_data {
        /*
-        * Align the tail on cache line size to eliminate false-sharing
-        * with head.
+        * We do not align head on a different cache-line than tail
+        * mainly because call_rcu callback-invocation threads use
+        * batching ("splice") to get an entire list of callbacks, which
+        * effectively empties the queue, and requires to touch the tail
+        * anyway.
         */
-       struct cds_wfcq_tail __attribute__((aligned(CAA_CACHE_LINE_SIZE))) cbs_tail;
-       /* Alignment on cache line size will add padding here */
-
+       struct cds_wfcq_tail cbs_tail;
        struct cds_wfcq_head cbs_head;
        unsigned long flags;
        int32_t futex;
This page took 0.023386 seconds and 4 git commands to generate.