[PATCH 1/6] locking/atomic, asm-generic: instrument ordering variants
Mark Rutland
mark.rutland at arm.com
Fri May 4 11:09:09 PDT 2018
On Fri, May 04, 2018 at 08:01:05PM +0200, Peter Zijlstra wrote:
> On Fri, May 04, 2018 at 06:39:32PM +0100, Mark Rutland wrote:
> > Currently <asm-generic/atomic-instrumented.h> only instruments the fully
> > ordered variants of atomic functions, ignoring the {relaxed,acquire,release}
> > ordering variants.
> >
> > This patch reworks the header to instrument all ordering variants of the atomic
> > functions, so that architectures implementing these are instrumented
> > appropriately.
> >
> > To minimise repetition, a macro is used to generate each variant from a common
> > template. The {full,relaxed,acquire,release} order variants respectively are
> > then built using this template, where the architecture provides an
> > implementation.
> > include/asm-generic/atomic-instrumented.h | 1195 ++++++++++++++++++++++++-----
> > 1 file changed, 1008 insertions(+), 187 deletions(-)
>
> Is there really no way to either generate or further macro compress this?
I can definitely macro compress this somewhat, but the bulk of the
repetition will be the ifdeffery, which can't be macro'd away IIUC.
Generating this with a script is possible -- do we do anything like that
elsewhere?
> This is stupid repetitive, we just got rid of all that endless copy
> paste crap in atomic implementations and now we're going back to that.
>
> Adding or changing atomic bits becomes horrifically painful because of this.
Sure thing; mangling it to its current state was a pain enough.
Thanks,
Mark.
More information about the linux-arm-kernel
mailing list