Re: [patch V4 part 1 07/36] locking/atomics: Flip fallbacks and instrumentation

Mark Rutland
2020-05-05T16:04:43Z

On Tue, May 05, 2020 at 03:16:09PM +0200, Thomas Gleixner wrote:
> Currently instrumentation of atomic primitives is done at the
> architecture level, while composites or fallbacks are provided at the
> generic level.
>
> The result is that there are no uninstrumented variants of the
> fallbacks. Since there is now need of such (see the next patch),
> invert this ordering.
>
> Doing this means moving the instrumentation into the generic code as
> well as having (for now) two variants of the fallbacks.
>
> Notes:
>
> - the various *cond_read* primitives are not proper fallbacks
> and got moved into linux/atomic.c. No arch_ variants are
> generated because the base primitives smp_cond_load*()
> are instrumented.
>
> - once all architectures are moved over to arch_atomic_ we can remove
> one of the fallback variants and reclaim some 2300 lines.
>
> - atomic_{read,set}*() are no longer double-instrumented
>
> Reported-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Mark Rutland <mark.rutland@arm.com>

FWIW, the scripting changes all look fine to me, so:

Acked-by: Mark Rutland <mark.rutland@arm.com>

I'm hoping that I can convert the remaining arches over to arch_atomic
atop of this, at which point we can remove the duplication, and have the
usual arch_<foo>/raw_<foo>/<foo> split.

Thanks,
Mark.