Messages in this thread Patch in this message | | | Date | Sat, 21 Jun 2008 17:54:01 +0800 | From | Lai Jiangshan <> | Subject | [RFC PATCH]rcu,alpha: avoid smp_read_barrier_depends in rcu_dereference when pointer==NULL |
| |
Hi, Paul and Alpha hackers
memory barrier is expensive, I think it's worth that adding an if-statement to avoid it when pointer == NULL.
This patch change nothing in UP or in other architectures for compiler's optimization.
Thanks, Lai Jiangshan
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> --- diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index d42dbec..8979f29 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -143,7 +143,8 @@ struct rcu_head { #define rcu_dereference(p) ({ \ typeof(p) _________p1 = ACCESS_ONCE(p); \ - smp_read_barrier_depends(); \ + if (_________p1) \ + smp_read_barrier_depends(); \ (_________p1); \ })
| |