All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V4 0/5] riscv: Optimize atomic implementation
@ 2022-05-05  3:55 ` guoren
  0 siblings, 0 replies; 48+ messages in thread
From: guoren @ 2022-05-05  3:55 UTC (permalink / raw)
  To: guoren, arnd, palmer, mark.rutland, will, peterz, boqun.feng,
	dlustig, parri.andrea
  Cc: linux-arch, linux-kernel, linux-riscv, Guo Ren

From: Guo Ren <guoren@linux.alibaba.com>

Here are some optimizations for riscv atomic implementation, the first
three patches are normal cleanup and custom implementation without
relating to atomic semantics.

The 4th is the same as arm64 LSE with using embedded .aq/.rl
annotation.

The 5th is good for riscv implementation with reducing a full-barrier
cost.

Changes in V4:
 - Coding convention & optimize the comments
 - Re-order the patchset

Changes in V3:
 - Fixup usage of lr.rl & sc.aq with violation of ISA
 - Add Optimize dec_if_positive functions
 - Add conditional atomic operations' optimization

Changes in V2:
 - Fixup LR/SC memory barrier semantic problems which pointed by
   Rutland
 - Combine patches into one patchset series
 - Separate AMO optimization & LRSC optimization for convenience
   patch review

Guo Ren (5):
  riscv: atomic: Cleanup unnecessary definition
  riscv: atomic: Optimize acquire and release for AMO operations
  riscv: atomic: Optimize memory barrier semantics of LRSC-pairs
  riscv: atomic: Optimize dec_if_positive functions
  riscv: atomic: Add conditional atomic operations' optimization

Guo Ren (5):
  riscv: atomic: Cleanup unnecessary definition
  riscv: atomic: Optimize dec_if_positive functions
  riscv: atomic: Add custom conditional atomic operation implementation
  riscv: atomic: Optimize atomic_ops & xchg with .aq/rl annotation
  riscv: atomic: Optimize LRSC-pairs atomic ops with .aqrl annotation

 arch/riscv/include/asm/atomic.h  | 174 +++++++++++++++++++++++++++----
 arch/riscv/include/asm/cmpxchg.h |  30 ++----
 2 files changed, 162 insertions(+), 42 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2022-08-09  7:07 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-05  3:55 [PATCH V4 0/5] riscv: Optimize atomic implementation guoren
2022-05-05  3:55 ` guoren
2022-05-05  3:55 ` [PATCH V4 1/5] riscv: atomic: Cleanup unnecessary definition guoren
2022-05-05  3:55   ` guoren
2022-05-05  3:55 ` [PATCH V4 2/5] riscv: atomic: Optimize dec_if_positive functions guoren
2022-05-05  3:55   ` guoren
2022-05-05  3:55 ` [PATCH V4 3/5] riscv: atomic: Add custom conditional atomic operation implementation guoren
2022-05-05  3:55   ` guoren
2022-05-05  3:55 ` [PATCH V4 4/5] riscv: atomic: Optimize atomic_ops & xchg with .aq/rl annotation guoren
2022-05-05  3:55   ` guoren
2022-05-05  3:55 ` [PATCH V4 5/5] riscv: atomic: Optimize LRSC-pairs atomic ops with .aqrl annotation guoren
2022-05-05  3:55   ` guoren
2022-05-21 20:46   ` Palmer Dabbelt
2022-05-21 20:46     ` Palmer Dabbelt
2022-05-22 13:12     ` Guo Ren
2022-05-22 13:12       ` Guo Ren
2022-06-02  5:59       ` Palmer Dabbelt
2022-06-02  5:59         ` Palmer Dabbelt
2022-06-13 11:49         ` Guo Ren
2022-06-13 11:49           ` Guo Ren
2022-06-14 11:03           ` Andrea Parri
2022-06-14 11:03             ` Andrea Parri
2022-06-23  3:31             ` Boqun Feng
2022-06-23  3:31               ` Boqun Feng
2022-06-23 17:09               ` Dan Lustig
2022-06-23 17:09                 ` Dan Lustig
2022-06-23 17:55                 ` Boqun Feng
2022-06-23 17:55                   ` Boqun Feng
2022-06-23 22:15                   ` Palmer Dabbelt
2022-06-23 22:15                     ` Palmer Dabbelt
2022-06-24  3:34                   ` Guo Ren
2022-06-24  3:34                     ` Guo Ren
2022-06-25  5:29                 ` Guo Ren
2022-06-25  5:29                   ` Guo Ren
2022-07-07  0:03                   ` Boqun Feng
2022-07-07  0:03                     ` Boqun Feng
2022-07-13 13:38                     ` Dan Lustig
2022-07-13 13:38                       ` Dan Lustig
2022-07-13 23:34                       ` Guo Ren
2022-07-13 23:34                         ` Guo Ren
2022-07-13 23:47                     ` Guo Ren
2022-07-13 23:47                       ` Guo Ren
2022-07-14 13:06                       ` Dan Lustig
2022-07-14 13:06                         ` Dan Lustig
2022-08-09  7:06                         ` Guo Ren
2022-08-09  7:06                           ` Guo Ren
2022-06-24  3:28             ` Guo Ren
2022-06-24  3:28               ` Guo Ren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.