| /linux/rust/kernel/sync/atomic/ |
| H A D | ordering.rs | 7 //! - [`Acquire`] provides ordering between the load part of the annotated operation and all the 31 /// The annotation type for acquire memory ordering, for the description of acquire memory 35 pub struct Acquire; struct 54 /// Acquire ordering. 55 Acquire, enumerator 67 impl Sealed for super::Acquire {} implementation 82 impl Ordering for Acquire { implementation 83 const TYPE: OrderingType = OrderingType::Acquire; 94 /// The trait bound for operations that only support acquire o 97 impl AcquireOrRelaxed for Acquire {} global() implementation [all...] |
| /linux/tools/testing/selftests/bpf/progs/ |
| H A D | verifier_load_acquire.c | 13 __description("load-acquire, 8-bit") 33 __description("load-acquire, 16-bit") 53 __description("load-acquire, 32-bit") 73 __description("load-acquire, 64-bit") 93 __description("load-acquire with uninitialized src_reg") 107 __description("load-acquire with non-pointer src_reg") 122 __description("misaligned load-acquire") 139 __description("load-acquire from ctx pointer") 153 __description("load-acquire from ctx pointer, same dst and src register") 169 __description("load-acquire from pkt pointer") [all …]
|
| /linux/tools/memory-model/ |
| H A D | linux-kernel.def | 12 // Release Acquire and friends 14 smp_load_acquire(X) __load{ACQUIRE}(*X) 34 xchg_acquire(X,V) __xchg{ACQUIRE}(X,V) 37 cmpxchg_acquire(X,V,W) __cmpxchg{ACQUIRE}(X,V,W) 77 atomic_add_return_acquire(V,X) __atomic_op_return{ACQUIRE}(X,+,V) 81 atomic_fetch_add_acquire(V,X) __atomic_fetch_op{ACQUIRE}(X,+,V) 86 atomic_fetch_and_acquire(V,X) __atomic_fetch_op{ACQUIRE}(X,&,V) 91 atomic_fetch_or_acquire(V,X) __atomic_fetch_op{ACQUIRE}(X,|,V) 96 atomic_fetch_xor_acquire(V,X) __atomic_fetch_op{ACQUIRE}(X,^,V) 101 atomic_inc_return_acquire(X) __atomic_op_return{ACQUIRE}( [all...] |
| H A D | linux-kernel.bell | 18 'ACQUIRE (*smp_load_acquire*) || 42 * semantic ordering, such as Acquire on a store or Mb on a failed RMW. 45 let Acquire = ACQUIRE \ W \ FailedRMW 88 let Marked = (~M) | IW | ONCE | RELEASE | ACQUIRE | MB | RMW |
|
| /linux/rust/kernel/ |
| H A D | id_pool.rs | 12 /// Clients acquire and release IDs from unset bits in a bitmap. 31 /// assert_eq!(i, pool.find_unused_id(i).ok_or(ENOSPC)?.acquire()); 35 /// assert_eq!(23, pool.find_unused_id(0).ok_or(ENOSPC)?.acquire()); 41 /// assert_eq!(pool.find_unused_id(0).ok_or(ENOSPC)?.acquire(), 64); 56 /// Some(index) => return Ok(index.acquire()), 259 /// [`acquire`] method must be called to prevent others from taking the id. 261 /// [`acquire`]: UnusedId::acquire() 271 /// [`acquire`] method must be called to prevent others from taking the id. 273 /// [`acquire`]: UnusedId::acquire() 282 /// Acquire the unused id. [all …]
|
| /linux/tools/memory-model/litmus-tests/ |
| H A D | README | 46 and load-acquire replaced with READ_ONCE(). 49 Can a release-acquire chain order a prior store against 58 Does a release-acquire pair suffice for the load-buffering 64 and load-acquire replaced with READ_ONCE(). 75 in one process, and use an acquire load followed by a pair of 80 acquire load followed by a pair of spin_is_locked() calls 91 As below, but with a release-acquire chain. 134 As below, but without the smp_wmb() and acquire load. 137 Can a smp_wmb(), instead of a release, and an acquire order 157 Is the ordering provided by a release-acquire chain sufficient [all …]
|
| H A D | ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus | 6 * This litmus test demonstrates that a release-acquire chain suffices 8 * that the release-acquire chain suffices is because in all but one 11 * (AKA non-rf) link, so release-acquire is all that is needed.
|
| /linux/include/drm/ |
| H A D | drm_modeset_lock.h | 35 * @ww_ctx: base acquire ctx 42 * Each thread competing for a set of locks must use one acquire 152 * DRM_MODESET_LOCK_ALL_BEGIN - Helper to acquire modeset locks 154 * @ctx: local modeset acquire context, will be dereferenced 167 * Drivers can acquire additional modeset locks. If any lock acquisition 187 * @ctx: local modeset acquire context, will be dereferenced 198 * successfully acquire the locks, ret will be whatever your code sets it to. If 199 * there is a deadlock or other failure with acquire or backoff, ret will be set
|
| /linux/Documentation/sound/cards/ |
| H A D | img-spdif-in.rst | 19 * name='SPDIF In Multi Frequency Acquire',index=0 20 * name='SPDIF In Multi Frequency Acquire',index=1 21 * name='SPDIF In Multi Frequency Acquire',index=2 22 * name='SPDIF In Multi Frequency Acquire',index=3 47 * name='SPDIF In Lock Acquire Threshold',index=0
|
| /linux/kernel/locking/ |
| H A D | mcs_spinlock.h | 9 * to acquire the lock spinning on a local variable. 20 * Using smp_cond_load_acquire() provides the acquire semantics 50 * In order to acquire the lock, the caller should declare a local node and 68 * observation of @node. And to provide the ACQUIRE ordering associated in mcs_spin_lock() 76 * However, since this thread can immediately acquire the lock in mcs_spin_lock() 91 * was used to acquire the lock. in mcs_spin_lock()
|
| H A D | qrwlock.c | 18 * queued_read_lock_slowpath - acquire read lock of a queued rwlock 30 * so spin with ACQUIRE semantics until the lock is available in queued_read_lock_slowpath() 47 * The ACQUIRE semantics of the following spinning code ensure in queued_read_lock_slowpath() 63 * queued_write_lock_slowpath - acquire write lock of a queued rwlock 75 /* Try to acquire the lock directly if no reader is present */ in queued_write_lock_slowpath()
|
| /linux/Documentation/driver-api/soundwire/ |
| H A D | locking.rst | 42 a. Acquire Message lock. 59 <-------------------------------+ a. Acquire Message lock 72 1. Acquire lock for Bus instance associated with Master 1. 76 a. Acquire Message lock. 93 <-------------------------------+ 1. Acquire bus lock 98 <-------------------------------+ a. Acquire Message lock
|
| /linux/tools/memory-model/Documentation/ |
| H A D | glossary.txt | 27 Acquire: With respect to a lock, acquiring that lock, for example, 31 An example special acquire operation is smp_load_acquire(), 33 acquire loads. 35 When an acquire load returns the value stored by a release store 36 to that same variable, (in other words, the acquire load "reads 38 store "happen before" any operations following that load acquire. 163 See also "Acquire" and "Release". 173 See also "Acquire" and "Relaxed".
|
| H A D | ordering.txt | 216 "x". However, you are usually better off using an acquire load, as described 217 in the "Acquire Operations" section below. 249 b. Acquire operations. 275 an acquire operation in other parts of the concurrent algorithm. 313 As mentioned earlier, release operations are often paired with acquire 317 Acquire Operations 320 Acquire operations include smp_load_acquire(), atomic_read_acquire(), 323 memory accesses. Acquire operations often provide improved performance 336 There are a couple of categories of acquire operations: 344 Note that acquire ordering is guaranteed only against the [all …]
|
| /linux/include/linux/ |
| H A D | atomic.h | 16 * - Acquire: Provides ACQUIRE semantics, _acquire suffix. 20 * For compound atomics performing both a load and a store, ACQUIRE 25 * See Documentation/memory-barriers.txt for ACQUIRE/RELEASE definitions. 35 * The idea here is to build acquire/release variants by adding explicit
|
| /linux/Documentation/locking/ |
| H A D | ww-mutex-design.rst | 63 Acquire context: To ensure eventual forward progress it is important that a task 64 trying to acquire locks doesn't grab a new reservation id, but keeps the one it 66 acquire context. Furthermore the acquire context keeps track of debugging state 67 to catch w/w mutex interface abuse. An acquire context is representing a 71 w/w mutexes, since it is required to initialize the acquire context. The lock 74 Furthermore there are three different class of w/w lock acquire functions: 99 * Functions to only acquire a single w/w mutex, which results in the exact same 103 Again this is not strictly required. But often you only want to acquire a 104 single lock in which case it's pointless to set up an acquire context (and so 119 Three different ways to acquire locks within the same w/w class. Common [all …]
|
| H A D | futex-requeue-pi.rst | 91 to be able to acquire the rt_mutex before returning to user space. 93 acquire the rt_mutex as it would open a race window between the 99 allow the requeue code to acquire an uncontended rt_mutex on behalf 115 requeueing, futex_requeue() attempts to acquire the requeue target 127 tasks as it can acquire the lock for, which in the majority of cases 129 either pthread_cond_broadcast() or pthread_cond_signal() acquire the
|
| H A D | mutex-design.rst | 40 (i) fastpath: tries to atomically acquire the lock by cmpxchg()ing the owner with 54 to acquire the lock spinning on a local variable. It avoids expensive 97 - Point-of-acquire tracking, symbolic lookup of function names, 115 acquire the mutex and assume that the mutex_unlock() context is not using 133 Acquire the mutex, uninterruptible:: 139 Acquire the mutex, interruptible:: 145 Acquire the mutex, interruptible, if dec to 0::
|
| /linux/kernel/printk/ |
| H A D | nbcon.c | 45 * The acquire mechanism uses a few more fields: 61 * The acquire mechanism uses three approaches: 63 * 1) Direct acquire when the console is not owned or is owned by a lower 99 * The acquire/release functions implement only minimal policies: 113 * acquire() 198 * @ctxt: Pointer to an acquire context that contains 199 * all information about the acquire mode 221 * nbcon_context_try_acquire_direct - Try to acquire directly 224 * @is_reacquire: This acquire is a reacquire 226 * Acquire th [all...] |
| /linux/tools/perf/pmu-events/arch/powerpc/power10/ |
| H A D | locks.json | 5 …onditional store instruction (STCX) failed. LARX and STCX are instructions used to acquire a lock." 10 …ditional store instruction (STCX) finished. LARX and STCX are instructions used to acquire a lock." 15 …onditional store instruction (STCX) passed. LARX and STCX are instructions used to acquire a lock."
|
| /linux/tools/perf/pmu-events/arch/x86/jaketown/ |
| H A D | uncore-io.json | 17 … use. Transactions from the BL ring going into the IIO Agent must first acquire a credit. These … 27 … use. Transactions from the BL ring going into the IIO Agent must first acquire a credit. These … 37 … use. Transactions from the BL ring going into the IIO Agent must first acquire a credit. These … 42 "BriefDescription": "R2PCIe IIO Failed to Acquire a Credit; DRS", 47 …he number of times that a request pending in the BL Ingress attempted to acquire either a NCB or N… 52 "BriefDescription": "R2PCIe IIO Failed to Acquire a Credit; NCB", 57 …he number of times that a request pending in the BL Ingress attempted to acquire either a NCB or N… 62 "BriefDescription": "R2PCIe IIO Failed to Acquire a Credit; NCS", 67 …he number of times that a request pending in the BL Ingress attempted to acquire either a NCB or N… 77 … use. Transactions from the BL ring going into the IIO Agent must first acquire a credit. These … [all …]
|
| /linux/tools/perf/util/ |
| H A D | lock-contention.h | 59 * UNINITIALIZED is required for detecting first event of acquire. 61 * that the first event for the locks are acquire, 87 * 1) acquire -> acquired -> release 88 * 2) acquire -> contended -> acquired -> release 89 * 3) acquire (with read or try) -> release
|
| /linux/Documentation/litmus-tests/ |
| H A D | README | 15 Atomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus 17 stronger than a normal acquire: both the read and write parts of 29 Demonstrate that a failing cmpxchg() operation acts as an acquire 38 acquire operation.
|
| /linux/Documentation/ |
| H A D | memory-barriers.txt | 474 (5) ACQUIRE operations. 477 operations after the ACQUIRE operation will appear to happen after the 478 ACQUIRE operation with respect to the other components of the system. 479 ACQUIRE operations include LOCK operations and both smp_load_acquire() 482 Memory operations that occur before an ACQUIRE operation may appear to 485 An ACQUIRE operation should almost always be paired with a RELEASE 500 The use of ACQUIRE and RELEASE operations generally precludes the need 501 for other sorts of memory barrier. In addition, a RELEASE+ACQUIRE pair is 503 ACQUIRE on a given variable, all memory accesses preceding any prior 509 This means that ACQUIRE acts as a minimal "acquire" operation and [all …]
|
| /linux/arch/sparc/include/asm/ |
| H A D | oplib_32.h | 79 /* Acquire the IDPROM of the root node in the prom device tree. This 133 /* Acquire an integer property. */ 136 /* Acquire an integer property, with a default value. */ 139 /* Acquire a boolean property, 0=FALSE 1=TRUE. */ 142 /* Acquire a string property, null string on error. */
|