Re: [RFC v2 11/13] rust: sync: Add memory barriers

From
David Gow <hidden>
Date
2024-11-01 06:55:36
Also in
linux-arch, linux-fsdevel, linux-riscv, lkml, llvm, rcu
Reply to
Boqun Feng, 2024-11-01
On Fri, 1 Nov 2024 at 14:07, Boqun Feng [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Memory barriers are building blocks for concurrent code, hence provide
a minimal set of them.

The compiler barrier, barrier(), is implemented in inline asm instead of
using core::sync::atomic::compiler_fence() because memory models are
different: kernel's atomics are implemented in inline asm therefore the
compiler barrier should be implemented in inline asm as well.

Signed-off-by: Boqun Feng <redacted>
---
 rust/helpers/helpers.c      |  1 +
 rust/kernel/sync.rs         |  1 +
 rust/kernel/sync/barrier.rs | 67 +++++++++++++++++++++++++++++++++++++
 3 files changed, 69 insertions(+)
 create mode 100644 rust/kernel/sync/barrier.rs
diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c
index ab5a3f1be241..f4a94833b29d 100644
--- a/rust/helpers/helpers.c
+++ b/rust/helpers/helpers.c
@@ -8,6 +8,7 @@
  */

 #include "atomic.c"
+#include "barrier.c"
It looks like "barrier.c" is missing, so this isn't compiling for me.
I assume it was meant to be added in this patch...?

Thanks,
-- David

Attachments

Thread (28 messages) 28 messages, 4 authors, last reply 2025-04-21
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help