| /linux/tools/memory-model/ |
| H A D | linux-kernel.def | 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}(X,+,1) 105 atomic_fetch_inc_acquire(X) __atomic_fetch_op{ACQUIRE}(X,+,1) [all …]
|
| H A D | linux-kernel.bell | 18 'ACQUIRE (*smp_load_acquire*) || 45 let Acquire = ACQUIRE \ W \ FailedRMW 88 let Marked = (~M) | IW | ONCE | RELEASE | ACQUIRE | MB | RMW |
|
| /linux/tools/memory-model/Documentation/ |
| H A D | herd-representation.txt | 24 # link, and W[ACQUIRE] are not included in the Acquire set. 39 | smp_load_acquire | R[ACQUIRE] | 86 | atomic_add_return_acquire | R*[ACQUIRE] ->rmw W*[ACQUIRE] | 107 | atomic_cmpxchg_acquire | On success: R*[ACQUIRE] ->rmw W*[ACQUIRE] | 108 | | On failure: R*[ACQUIRE] |
|
| /linux/drivers/pci/ |
| H A D | tsm.c | 203 ACQUIRE(mutex_intr, lock)(&tsm_pf0->lock); in pci_tsm_connect() 237 ACQUIRE(rwsem_read_intr, lock)(&pci_tsm_rwsem); in connect_show() 270 ACQUIRE(rwsem_write_kill, lock)(&pci_tsm_rwsem); in connect_store() 415 ACQUIRE(rwsem_read_intr, lock)(&pci_tsm_rwsem); in pci_tsm_guest_req() 426 ACQUIRE(mutex_intr, ops_lock)(&tsm_pf0->lock); in pci_tsm_guest_req() 477 ACQUIRE(rwsem_write_kill, lock)(&pci_tsm_rwsem); in disconnect_store() 501 ACQUIRE(rwsem_read_intr, lock)(&pci_tsm_rwsem); in bound_show() 510 ACQUIRE(mutex_intr, ops_lock)(&tsm_pf0->lock); in bound_show() 527 ACQUIRE(rwsem_read_intr, lock)(&pci_tsm_rwsem); in dsm_show()
|
| /linux/Documentation/translations/zh_CN/core-api/ |
| H A D | refcount-vs-atomic.rst | 52 ACQUIRE内存顺序保证了同一CPU上的所有后加载和存储的指令(所有程序顺序较后 128 * 完全有序的 --> RELEASE顺序 + 成功后ACQUIRE顺序
|
| /linux/include/linux/ |
| H A D | pm_runtime.h | 631 ACQUIRE(pm_runtime_active_try, _var)(_dev) 634 ACQUIRE(pm_runtime_active_auto_try, _var)(_dev) 637 ACQUIRE(pm_runtime_active_try_enabled, _var)(_dev) 640 ACQUIRE(pm_runtime_active_auto_try_enabled, _var)(_dev)
|
| H A D | cleanup.h | 428 #define ACQUIRE(_name, _var) CLASS(_name, _var) macro
|
| /linux/Documentation/ |
| H A D | atomic_bitops.txt | 63 Except for a successful test_and_set_bit_lock() which has ACQUIRE semantics, 65 ACQUIRE semantics.
|
| 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 …]
|
| H A D | atomic_t.txt | 177 {}_acquire: the R of the RMW (or atomic_read) is an ACQUIRE 233 is an ACQUIRE pattern (though very much not typical), but again the barrier is 234 strictly stronger than ACQUIRE. As illustrated:
|
| /linux/Documentation/trace/rv/ |
| H A D | linear_temporal_logic.rst | 95 RULE = always (ACQUIRE imply ((not KILLED and not CRASHED) until RELEASE)) 97 which says: if `ACQUIRE`, then `RELEASE` must happen before `KILLED` or 104 RULE = always (ACQUIRE imply (ALIVE until RELEASE))
|
| /linux/Documentation/translations/sp_SP/ |
| H A D | memory-barriers.txt | 504 (5) ACQUIRE (de adquisición). 507 toda las operaciones de memoria después de la operación ACQUIRE 508 parezcan suceder después de la ACQUIRE con respecto a los demás 509 componentes del sistema. Las operaciones ACQUIRE incluyen operaciones 512 Las operaciones de memoria que ocurren antes de una operación ACQUIRE 515 Una operación ACQUIRE casi siempre debe estar emparejada con una 530 El uso de las operaciones ACQUIRE y RELEASE generalmente excluye la 532 RELEASE+ACQUIRE NO garantiza actuar como una barrera de memoria 533 completa. Sin embargo, después de un ACQUIRE de una variable dada, 540 Esto significa que ACQUIRE actúa como una operación mínima de [all …]
|
| /linux/drivers/cxl/core/ |
| H A D | region.c | 152 ACQUIRE(rwsem_read_intr, region_rwsem)(&cxl_rwsem.region); in uuid_show() 199 ACQUIRE(rwsem_write_kill, region_rwsem)(&cxl_rwsem.region); in uuid_store() 362 ACQUIRE(rwsem_write_kill, rwsem)(&cxl_rwsem.region); in queue_reset() 380 ACQUIRE(rwsem_write_kill, rwsem)(&cxl_rwsem.region); in __commit() 466 ACQUIRE(rwsem_read_intr, rwsem)(&cxl_rwsem.region); in commit_show() 480 ACQUIRE(rwsem_read_intr, rwsem)(&cxl_rwsem.region); in interleave_ways_show() 518 ACQUIRE(rwsem_write_kill, rwsem)(&cxl_rwsem.region); in interleave_ways_store() 545 ACQUIRE(rwsem_read_intr, rwsem)(&cxl_rwsem.region); in interleave_granularity_show() 581 ACQUIRE(rwsem_write_kill, rwsem)(&cxl_rwsem.region); in interleave_granularity_store() 602 ACQUIRE(rwsem_read_intr, rwsem)(&cxl_rwsem.region); in resource_show() [all …]
|
| H A D | memdev.c | 242 ACQUIRE(rwsem_read_intr, region_rwsem)(&cxl_rwsem.region); in cxl_trigger_poison_list() 246 ACQUIRE(rwsem_read_intr, dpa_rwsem)(&cxl_rwsem.dpa); in cxl_trigger_poison_list() 334 ACQUIRE(rwsem_read_intr, region_rwsem)(&cxl_rwsem.region); in cxl_inject_poison() 338 ACQUIRE(rwsem_read_intr, dpa_rwsem)(&cxl_rwsem.dpa); in cxl_inject_poison() 403 ACQUIRE(rwsem_read_intr, region_rwsem)(&cxl_rwsem.region); in cxl_clear_poison() 407 ACQUIRE(rwsem_read_intr, dpa_rwsem)(&cxl_rwsem.dpa); in cxl_clear_poison()
|
| H A D | edac.c | 118 ACQUIRE(rwsem_read_intr, rwsem)(&cxl_rwsem.region); in cxl_scrub_get_attrbs() 160 ACQUIRE(rwsem_read_intr, rwsem)(&cxl_rwsem.region); in cxl_scrub_set_attrbs_region() 1343 ACQUIRE(rwsem_read_intr, region_rwsem)(&cxl_rwsem.region); in cxl_mem_perform_sparing() 1347 ACQUIRE(rwsem_read_intr, dpa_rwsem)(&cxl_rwsem.dpa); in cxl_mem_perform_sparing() 1789 ACQUIRE(rwsem_read_intr, region_rwsem)(&cxl_rwsem.region); in cxl_mem_perform_ppr() 1793 ACQUIRE(rwsem_read_intr, dpa_rwsem)(&cxl_rwsem.dpa); in cxl_mem_perform_ppr()
|
| H A D | mbox.c | 1435 ACQUIRE(mutex_intr, lock)(&mds->poison.mutex); in cxl_mem_get_poison()
|
| /linux/Documentation/core-api/ |
| H A D | refcount-vs-atomic.rst | 57 An ACQUIRE memory ordering guarantees that all post loads and 151 * fully ordered --> ACQUIRE ordering on success 164 * fully ordered --> RELEASE ordering + ACQUIRE ordering on success
|
| /linux/Documentation/translations/zh_CN/locking/ |
| H A D | spinlocks.rst | 35 (5) ACQUIRE operations.
|
| /linux/drivers/iio/adc/ |
| H A D | rzn1-adc.c | 252 ACQUIRE(pm_runtime_active_auto_try_enabled, pm)(rzn1_adc->dev); in rzn1_adc_read_raw_ch()
|
| /linux/include/linux/iio/ |
| H A D | iio.h | 781 ACQUIRE(__priv__iio_dev_mode_lock_try_direct, claim)(dev)
|
| /linux/Documentation/locking/ |
| H A D | spinlocks.rst | 28 (5) ACQUIRE operations.
|
| /linux/drivers/i2c/busses/ |
| H A D | i2c-designware-common.c | 961 ACQUIRE(pm_runtime_noresume, pm)(dev->dev); in i2c_dw_probe()
|
| /linux/arch/arm64/tools/ |
| H A D | sysreg | 839 0b0010 ACQUIRE
|
| /linux/fs/ |
| H A D | namespace.c | 4476 ACQUIRE(mutex_intr, uapi_mutex)(&fc->uapi_mutex); in SYSCALL_DEFINE3()
|