[RFC PATCH 0/6] Deduplicating RISCV cmpxchg.h macros
Leonardo Brás
leobras at redhat.com
Mon Mar 20 23:30:35 PDT 2023
Hello Conor, thanks for the feedback!
On Sun, 2023-03-19 at 20:35 +0000, Conor Dooley wrote:
> On Sat, Mar 18, 2023 at 05:00:54AM -0300, Leonardo Bras wrote:
> > While studying riscv's cmpxchg.h file, I got really interested in
> > understanding how RISCV asm implemented the different versions of
> > {cmp,}xchg.
> >
> > When I understood the pattern, it made sense for me to remove the
> > duplications and create macros to make it easier to understand what exactly
> > changes between the versions: Instruction sufixes & barriers.
> >
> > I split those changes in 3 levels for each cmpxchg and xchg, resulting a
> > total of 6 patches. I did this so it becomes easier to review and remove
> > the last levels if desired, but I have no issue squashing them if it's
> > better.
> >
> > Please provide comments.
> >
> > Thanks!
> > Leo
> >
> > Leonardo Bras (6):
> > riscv/cmpxchg: Deduplicate cmpxchg() asm functions
> > riscv/cmpxchg: Deduplicate cmpxchg() macros
> > riscv/cmpxchg: Deduplicate arch_cmpxchg() macros
>
> > riscv/cmpxchg: Deduplicate xchg() asm functions
>
> FWIW, this patch seems to break the build pretty badly:
> https://patchwork.kernel.org/project/linux-riscv/patch/20230318080059.1109286-5-leobras@redhat.com/
Thanks for pointing out!
It was an intermediary error:
Sufix for amoswap on acquire version was "d.aqrl" instead of the
correct".d.aqrl", and that caused the fail.
I did not notice anything because the next commit made it more general, and thus
removed this line of code. I will send a v2-RFC shortly.
I see that patch 4/6 has 5 fails, but on each one of them I can see:
"I: build output in /ci/workspace/[...]", or
""I: build output in /tmp/[...]".
I could not find any reference to where this is saved, though.
Could you point where can I find the error output, just for the sake of further
debugging?
>
> Patches 1 & 5 also add quite a lot of sparse issues (like 1000), but I
> think that may be more of an artifact of the testing process as opposed
> to something caused by this patchset.
For those I can see the build output diffs. Both added error lines to
conchuod/build_rv64_gcc_allmodconfig.
I tried to mimic this with [make allmodconfig + gcc build with
CROSS_COMPILE=riscv64-linux-gnu- ] but I could not get any error in any patch.
For patch 1/6 it removes as much error lines (-) as it adds (+), and the error
messages are mostly the same, apart for an line number.
For patch 5/6 it actually adds many more lines, but tracking (some of) the
errors gave me no idea why.
>
> Cheers,
> Conor.
Thanks a lot!
Leo
More information about the linux-riscv
mailing list