Module kernel::sync::atomic

source ·
Expand description

Atomic primitives.

These primitives have the same semantics as their C counterparts: and the precise definitions of semantics can be found at LKMM. Note that Linux Kernel Memory (Consistency) Model is the only model for Rust code in kernel, and Rust’s own atomics should be avoided.

§Data races

LKMM atomics have different rules regarding data races:

  • A normal write from C side is treated as an atomic write if CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC=y.
  • Mixed-size atomic accesses don’t cause data races.

Re-exports§

Modules§

Structs§

  • A memory location which can be safely modified from multiple execution contexts.

Traits§

  • Types that support atomic add operations.
  • A marker trait for types that implement atomic operations with C side primitives.
  • Types that support basic atomic operations.