call_rcu: remove head field alignement, explain wfcqueue motivation
[urcu.git] / urcu-call-rcu-impl.h
index dca98e4ae073d45f93d8665235b715661f16c0ad..4e5879f381eadc8ebacd2efd079bfa588ac41c4b 100644 (file)
 
 struct call_rcu_data {
        /*
-        * Align the tail on cache line size to eliminate false-sharing
-        * with head. Small note, however: the "qlen" field, kept for
-        * debugging, will cause false-sharing between enqueue and
-        * dequeue.
+        * 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 cbs_tail;
-       /* Alignment on cache line size will add padding here */
-
-       struct cds_wfcq_head __attribute__((aligned(CAA_CACHE_LINE_SIZE))) cbs_head;
+       struct cds_wfcq_head cbs_head;
        unsigned long flags;
        int32_t futex;
        unsigned long qlen; /* maintained for debugging. */
This page took 0.022543 seconds and 4 git commands to generate.