Re: [PATCH 17/19] locking/barriers: Kill lockless_dereference

From: Ingo Molnar
Date: Tue Oct 24 2017 - 05:31:16 EST



* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:

> From: Will Deacon <will.deacon@xxxxxxx>
>
> lockless_dereference is a nice idea, but its gained little traction in
> kernel code since it's introduction three years ago. This is partly

s/its/it
s/it's/its

> because it's a pain to type, but also because using READ_ONCE instead
> will work correctly on all architectures apart from Alpha, which is a
> fully supported but somewhat niche architecture these days.
>
> This patch moves smp_read_barrier_depends() (a NOP on all architectures
> other than Alpha) from lockless_dereference into READ_ONCE, converts
> the few actual users over to READ_ONCE and then finally removes
> lockless_dereference altogether.

Nit: if we refer to smp_read_barrier_depends() with parentheses (which is the nice
thing to do for function-alike symbols), then we should do the same with
READ_ONCE() and lockless_dereference() as well.

Also, could we please split this into three patches:

#1: Add smp_read_barrier_depends() to READ_ONCE()
#2: Convert all lockless_dereference() users to READ_ONCE()
#3: Remove the now unused lockless_dereference() API

to make it easier to analyze if bisected to, should any problems arise?

Thanks,

Ingo