Searched full:ordering (Results 1 – 25 of 1142) sorted by relevance
12345678910>>...46
/linux-6.14.4/include/linux/atomic/ |
D | atomic-instrumented.h | 20 * atomic_read() - atomic load with relaxed ordering 23 * Atomically loads the value of @v with relaxed ordering. 37 * atomic_read_acquire() - atomic load with acquire ordering 40 * Atomically loads the value of @v with acquire ordering. 54 * atomic_set() - atomic set with relaxed ordering 58 * Atomically sets @v to @i with relaxed ordering. 72 * atomic_set_release() - atomic set with release ordering 76 * Atomically sets @v to @i with release ordering. 91 * atomic_add() - atomic add with relaxed ordering 95 * Atomically updates @v to (@v + @i) with relaxed ordering. [all …]
|
D | atomic-long.h | 25 * raw_atomic_long_read() - atomic load with relaxed ordering 28 * Atomically loads the value of @v with relaxed ordering. 45 * raw_atomic_long_read_acquire() - atomic load with acquire ordering 48 * Atomically loads the value of @v with acquire ordering. 65 * raw_atomic_long_set() - atomic set with relaxed ordering 69 * Atomically sets @v to @i with relaxed ordering. 86 * raw_atomic_long_set_release() - atomic set with release ordering 90 * Atomically sets @v to @i with release ordering. 107 * raw_atomic_long_add() - atomic add with relaxed ordering 111 * Atomically updates @v to (@v + @i) with relaxed ordering. [all …]
|
D | atomic-arch-fallback.h | 445 * raw_atomic_read() - atomic load with relaxed ordering 448 * Atomically loads the value of @v with relaxed ordering. 461 * raw_atomic_read_acquire() - atomic load with acquire ordering 464 * Atomically loads the value of @v with acquire ordering. 490 * raw_atomic_set() - atomic set with relaxed ordering 494 * Atomically sets @v to @i with relaxed ordering. 507 * raw_atomic_set_release() - atomic set with release ordering 511 * Atomically sets @v to @i with release ordering. 533 * raw_atomic_add() - atomic add with relaxed ordering 537 * Atomically updates @v to (@v + @i) with relaxed ordering. [all …]
|
/linux-6.14.4/tools/memory-model/Documentation/ |
D | ordering.txt | 1 This document gives an overview of the categories of memory-ordering 5 Categories of Ordering 8 This section lists LKMM's three top-level categories of memory-ordering 20 3. Unordered accesses, as the name indicates, have no ordering 23 some of these "unordered" operations provide limited ordering 38 b. Read-modify-write (RMW) ordering augmentation barriers. 50 ordering primitives provided for that purpose. For example, instead of 58 The Linux-kernel primitives that provide full ordering include: 79 memory-ordering primitives. It is surprisingly hard to remember their 82 Second, some RMW atomic operations provide full ordering. These [all …]
|
D | control-dependencies.txt | 12 Therefore, a load-load control dependency will not preserve ordering 19 This is not guaranteed to provide any ordering because some types of CPUs 31 However, stores are not speculated. This means that ordering is 40 of ordering. But please note that neither the READ_ONCE() nor the 59 It is tempting to try use control dependencies to enforce ordering on 78 WRITE_ONCE(b, 1); /* BUG: No ordering vs. load from a!!! */ 91 have been applied. Therefore, if you need ordering in this example, 92 you must use explicit memory ordering, for example, smp_store_release(): 103 Without explicit memory ordering, control-dependency-based ordering is 121 preserve ordering. For example: [all …]
|
D | simple.txt | 2 memory-ordering lives simple, as is necessary for those whose domain 3 is complex. After all, there are bugs other than memory-ordering bugs, 4 and the time spent gaining memory-ordering knowledge is not available 139 memory ordering. 175 2. Operations that did not return a value and provided no ordering, 178 3. Operations that returned a value and provided full ordering, such as 180 value-returning operations provide full ordering only conditionally. 181 For example, cmpxchg() provides ordering only upon success. 184 provide full ordering. These are flagged with either a _relaxed() 185 suffix (providing no ordering), or an _acquire() or _release() suffix [all …]
|
D | cheatsheet.txt | 25 C: Ordering is cumulative 26 P: Ordering propagates 29 Y: Provides ordering 30 a: Provides ordering given intervening RMW atomic operation
|
D | recipes.txt | 41 your full-ordering warranty, as do undersized accesses that load 157 lock's ordering properties. 159 Ordering can be extended to CPUs not holding the lock by careful use 208 In the absence of any ordering, this goal may not be met, as can be seen 217 the desired MP ordering. The general approach is shown below: 272 The rcu_assign_pointer() macro has the same ordering properties as does 357 absence of any ordering it is quite possible that this may happen, as 434 The ordering in this example is stronger than it needs to be. For 435 example, ordering would still be preserved if CPU1()'s smp_load_acquire() 468 well as simple and powerful, at least as memory-ordering mechanisms go. [all …]
|
D | README | 18 that the Linux kernel provides: ordering.txt 90 ordering.txt 91 Overview of the Linux kernel's low-level memory-ordering 95 Common memory-ordering patterns.
|
/linux-6.14.4/Documentation/core-api/ |
D | refcount-vs-atomic.rst | 14 ``atomic_*()`` functions with regards to the memory ordering guarantees. 17 these memory ordering guarantees. 23 memory ordering in general and for atomic operations specifically. 25 Relevant types of memory ordering 29 ordering types that are relevant for the atomics and reference 33 In the absence of any memory ordering guarantees (i.e. fully unordered) 41 A strong (full) memory ordering guarantees that all prior loads and 49 A RELEASE memory ordering guarantees that all prior loads and 57 An ACQUIRE memory ordering guarantees that all post loads and 84 Memory ordering guarantee changes: [all …]
|
/linux-6.14.4/include/linux/ |
D | refcount.h | 60 * Memory ordering 63 * Memory ordering rules are slightly relaxed wrt regular atomic_t functions 66 * The increments are fully relaxed; these will not provide ordering. The 68 * reference count on will provide the ordering. For locked data structures, 84 * Note that the allocator is responsible for ordering things between free() 88 * ordering on success. 165 * Provides no memory ordering, it is assumed the caller has guaranteed the 202 * Provides no memory ordering, it is assumed the caller has guaranteed the 228 * Provides no memory ordering, it is assumed the caller has guaranteed the 250 * Provides no memory ordering, it is assumed the caller already has a [all …]
|
D | rcuref.h | 51 * Provides no memory ordering, it is assumed the caller has guaranteed the 104 * Provides release memory ordering, such that prior loads and stores are done 105 * before, and provides an acquire ordering on success such that free() 133 * Provides release memory ordering, such that prior loads and stores are done 134 * before, and provides an acquire ordering on success such that free()
|
/linux-6.14.4/tools/include/linux/ |
D | refcount.h | 15 * Memory ordering rules are slightly relaxed wrt regular atomic_t functions 18 * The increments are fully relaxed; these will not provide ordering. The 20 * reference count on will provide the ordering. For locked data structures, 36 * Note that the allocator is responsible for ordering things between free() 71 * Provides no memory ordering, it is assumed the caller has guaranteed the 104 * Provides no memory ordering, it is assumed the caller already has a 116 * Provides release memory ordering, such that prior loads and stores are done
|
/linux-6.14.4/Documentation/RCU/Design/Memory-Ordering/ |
D | Tree-RCU-Memory-Ordering.rst | 2 A Tour Through TREE_RCU's Grace-Period Memory Ordering 13 grace-period memory ordering guarantee is provided. 15 What Is Tree RCU's Grace Period Memory Ordering Guarantee? 18 RCU grace periods provide extremely strong memory-ordering guarantees 46 Tree RCU Grace Period Memory Ordering Building Blocks 49 The workhorse for RCU's grace-period memory ordering is the 72 Tree RCU uses these two ordering guarantees to form an ordering 77 The following litmus test exhibits the ordering effects of these 126 | Because we must provide ordering for RCU's polling grace-period | 145 RCU's grace-period memory ordering guarantee to extend to any [all …]
|
/linux-6.14.4/arch/mips/include/asm/ |
D | sync.h | 16 * 2) Ordering barriers, which only ensure that affected memory operations 20 * Ordering barriers can be more efficient than completion barriers, since: 22 * a) Ordering barriers only require memory access instructions which precede 31 * b) Multiple variants of ordering barrier are provided which allow the 35 * barrier & don't care about the ordering of loads then the 'wmb' 36 * ordering barrier can be used. Limiting the barrier's effects to stores 57 * we're satisfied that lightweight ordering barriers defined by MIPSr6 are 65 * ...except on Cavium Octeon CPUs, which have been using the 'wmb' ordering 153 * Some Cavium Octeon CPUs suffer from a bug that causes a single wmb ordering
|
/linux-6.14.4/scripts/atomic/kerneldoc/ |
D | inc_not_zero | 3 * ${class}${atomicname}() - atomic increment unless zero with ${desc_order} ordering 6 * If (@v != 0), atomically updates @v to (@v + 1) with ${desc_order} ordering. 7 * Otherwise, @v is not modified and relaxed ordering is provided.
|
D | dec_unless_positive | 3 * ${class}${atomicname}() - atomic decrement unless positive with ${desc_order} ordering 6 * If (@v <= 0), atomically updates @v to (@v - 1) with ${desc_order} ordering. 7 * Otherwise, @v is not modified and relaxed ordering is provided.
|
D | inc_unless_negative | 3 * ${class}${atomicname}() - atomic increment unless negative with ${desc_order} ordering 6 * If (@v >= 0), atomically updates @v to (@v + 1) with ${desc_order} ordering. 7 * Otherwise, @v is not modified and relaxed ordering is provided.
|
D | dec_if_positive | 3 * ${class}${atomicname}() - atomic decrement if positive with ${desc_order} ordering 6 * If (@v > 0), atomically updates @v to (@v - 1) with ${desc_order} ordering. 7 * Otherwise, @v is not modified and relaxed ordering is provided.
|
D | cmpxchg | 3 * ${class}${atomicname}() - atomic compare and exchange with ${desc_order} ordering 8 * If (@v == @old), atomically updates @v to @new with ${desc_order} ordering. 9 * Otherwise, @v is not modified and relaxed ordering is provided.
|
D | try_cmpxchg | 3 * ${class}${atomicname}() - atomic compare and exchange with ${desc_order} ordering 8 * If (@v == @old), atomically updates @v to @new with ${desc_order} ordering. 10 * and relaxed ordering is provided.
|
D | add_unless | 7 * ${class}${atomicname}() - atomic add unless value with ${desc_order} ordering 12 * If (@v != @u), atomically updates @v to (@v + @a) with ${desc_order} ordering. 13 * Otherwise, @v is not modified and relaxed ordering is provided.
|
/linux-6.14.4/lib/ |
D | rcuref.c | 153 * Memory ordering 156 * Memory ordering rules are slightly relaxed wrt regular atomic_t functions 159 * The increments are fully relaxed; these will not provide ordering. The 161 * reference count on will provide the ordering. For locked data 165 * rcuref_get() provides a control dependency ordering future stores which 170 * will be issued before. It also provides a control dependency ordering 174 * object DEAD it also provides acquire ordering. 255 * deconstruction. Provide acquire ordering. in rcuref_put_slowpath()
|
/linux-6.14.4/tools/perf/pmu-events/arch/x86/goldmont/ |
D | memory.json | 3 "BriefDescription": "Machine clears due to memory ordering issue", 7 …e clears due to memory ordering issues. This occurs when a snoop request happens and the machine …
|
/linux-6.14.4/tools/perf/pmu-events/arch/x86/goldmontplus/ |
D | memory.json | 3 "BriefDescription": "Machine clears due to memory ordering issue", 7 …e clears due to memory ordering issues. This occurs when a snoop request happens and the machine …
|
12345678910>>...46