projects
/
userspace-rcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix urcu-call-rcu-impl.h: false-sharing
[userspace-rcu.git]
/
urcu-call-rcu-impl.h
diff --git
a/urcu-call-rcu-impl.h
b/urcu-call-rcu-impl.h
index cf65992f4e57a8bc86187744271c5ee4c58b6d26..dca98e4ae073d45f93d8665235b715661f16c0ad 100644
(file)
--- a/
urcu-call-rcu-impl.h
+++ b/
urcu-call-rcu-impl.h
@@
-49,12
+49,14
@@
struct call_rcu_data {
/*
* Align the tail on cache line size to eliminate false-sharing
struct call_rcu_data {
/*
* Align the tail on cache line size to eliminate false-sharing
- * with head.
+ * with head. Small note, however: the "qlen" field, kept for
+ * debugging, will cause false-sharing between enqueue and
+ * dequeue.
*/
*/
- struct cds_wfcq_tail
__attribute__((aligned(CAA_CACHE_LINE_SIZE)))
cbs_tail;
+ struct cds_wfcq_tail cbs_tail;
/* Alignment on cache line size will add padding here */
/* Alignment on cache line size will add padding here */
- struct cds_wfcq_head cbs_head;
+ struct cds_wfcq_head
__attribute__((aligned(CAA_CACHE_LINE_SIZE)))
cbs_head;
unsigned long flags;
int32_t futex;
unsigned long qlen; /* maintained for debugging. */
unsigned long flags;
int32_t futex;
unsigned long qlen; /* maintained for debugging. */
This page took
0.037408 seconds
and
4
git commands to generate.