Message ID | 20230404163741.2762165-1-leobras@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Deduplicating RISCV cmpxchg.h macros | expand |
Thx Leonardo, It's a good point for cleaning up. On Wed, Apr 5, 2023 at 12:37 AM Leonardo Bras <leobras@redhat.com> 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 But how about merging 3 levels into one? (I mean one for cmpxchg and one for xchg, resulting in 2 patches.) > 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 > > Changes since v2: > - Fixed macros that depend on having a local variable with a magic name > - Previous cast to (long) is now only applied on 4-bytes cmpxchg > > Changes since v1: > - Fixed patch 4/6 suffix from 'w.aqrl' to '.w.aqrl', to avoid build error > > > 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 > riscv/cmpxchg: Deduplicate xchg() macros > riscv/cmpxchg: Deduplicate arch_xchg() macros > > arch/riscv/include/asm/cmpxchg.h | 319 +++++++------------------------ > 1 file changed, 67 insertions(+), 252 deletions(-) > > -- > 2.40.0 >
On Wed, Apr 5, 2023 at 11:40 PM Guo Ren <guoren@kernel.org> wrote: > > Thx Leonardo, > > It's a good point for cleaning up. Hello Guo, Thanks for the feedback! > > On Wed, Apr 5, 2023 at 12:37 AM Leonardo Bras <leobras@redhat.com> 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 > But how about merging 3 levels into one? (I mean one for cmpxchg and > one for xchg, resulting in 2 patches.) Sure, as mentioned below, I have no issue squashing the patches, so 2 should work fine. I was previously worried about the changes, so I split them in 3 so it's easier to understand my thought process. I will resend it in a couple minutes. > > > 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 > > > > Changes since v2: > > - Fixed macros that depend on having a local variable with a magic name > > - Previous cast to (long) is now only applied on 4-bytes cmpxchg > > > > Changes since v1: > > - Fixed patch 4/6 suffix from 'w.aqrl' to '.w.aqrl', to avoid build error > > > > > > 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 > > riscv/cmpxchg: Deduplicate xchg() macros > > riscv/cmpxchg: Deduplicate arch_xchg() macros > > > > arch/riscv/include/asm/cmpxchg.h | 319 +++++++------------------------ > > 1 file changed, 67 insertions(+), 252 deletions(-) > > > > -- > > 2.40.0 > > > > > -- > Best Regards > Guo Ren > Best regards, Leo