Lines Matching full:operations
4 Atomic operations in QEMU
7 CPUs perform independent memory operations effectively in random order.
19 and atomic operations. The semantics of concurrent memory accesses are governed
36 used data structures (e.g. the lock-free singly-linked list operations
39 atomic operations and memory barriers should be limited to inter-thread
64 Most of the operations in the ``qemu/atomic.h`` header ensure *sequential
66 operations of all the processors were executed in some sequential order,
67 and the operations of each individual processor appear in this sequence
71 operations::
91 all of which return the old value of ``*ptr``. These operations are
95 Similar operations return the new value of ``*ptr``::
124 - acquire operations will appear to happen, with respect to the other
125 components of the system, before all the LOAD or STORE operations
128 - release operations will appear to happen, with respect to the other
129 components of the system, after all the LOAD or STORE operations
132 - release operations will *synchronize with* acquire operations;
145 before all the LOAD or STORE operations specified afterwards.
146 Operations coming before ``qatomic_load_acquire()`` can still be
151 after all the LOAD or STORE operations specified before.
152 Operations coming after ``qatomic_store_release()`` can still be
162 - ``smp_rmb()`` guarantees that all the LOAD operations specified before
163 the barrier will appear to happen before all the LOAD operations
170 - ``smp_wmb()`` guarantees that all the STORE operations specified before
171 the barrier will appear to happen before all the STORE operations
178 - ``smp_mb_acquire()`` guarantees that all the LOAD operations specified before
179 the barrier will appear to happen before all the LOAD or STORE operations
183 - ``smp_mb_release()`` guarantees that all the STORE operations specified *after*
184 the barrier will appear to happen after all the LOAD or STORE operations
188 - ``smp_mb()`` guarantees that all the LOAD and STORE operations specified
190 STORE operations specified after the barrier with respect to the other
297 Atomic operations other than ``qatomic_set()`` and ``qatomic_read()`` have
300 .. [#rmw] Read-modify-write operations can have both---acquire applies to the
303 - within a thread, they are ordered either before subsequent operations
304 (for acquire) or after previous operations (for release).
313 operations; almost all higher-level synchronization primitives also have
347 a release operation and an acquire operation. Therefore, atomic operations
356 as acquire operations. ``smp_wmb()``, ``smp_mb_release()``,
358 operations. ``smp_mb()`` counts as both acquire and release, therefore
373 Note that a load-store pair only counts if the two operations access the
422 Here is a list of differences between Linux kernel atomic operations
425 - atomic operations in Linux are always on a 32-bit int type and
426 use a boxed ``atomic_t`` type; atomic operations in QEMU are polymorphic
445 - atomic read-modify-write operations in Linux are of three kinds:
456 - different atomic read-modify-write operations in Linux imply