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.