Home
last modified time | relevance | path

Searched +full:store +full:- +full:release (Results 1 – 25 of 900) sorted by relevance

12345678910>>...36

/linux/tools/memory-model/Documentation/
H A Dglossary.txt1 This document contains brief definitions of LKMM-related terms. Like most
10 Address dependencies are quite common in RCU read-side critical
15 3 do_something(p->a);
18 In this case, because the address of "p->a" on line 3 is computed
21 "p->a". In rare cases, optimizing compilers can destroy address
28 using spin_lock(). With respect to a non-lock shared variable,
35 When an acquire load returns the value stored by a release store
37 from" the release store), the
[all...]
H A Drecipes.txt20 ------------------------------------
31 2. Compilers are permitted to use the "as-if" rule. That is, a
33 as long as the results of a single-threaded execution appear
41 your full-ordering warranty, as do undersized accesses that load
42 from or store to only part of the variable.
45 use READ_ONCE() and WRITE_ONCE() or stronger to prevent load/store
46 tearing, load/store fusing, and invented loads and stores.
51 holding the update-side lock, reads from that variable
62 -------
66 locklessly accessing lock-protected shared variables.
[all …]
H A Dordering.txt1 This document gives an overview of the categories of memory-ordering
2 operations provided by the Linux-kernel memory model (LKMM).
8 This section lists LKMM's three top-level categories of memory-ordering
38 b. Read-modify-write (RMW) ordering augmentation barriers.
56 --------------------
58 The Linux-kernel primitives that provide full ordering include:
62 o Value-returning RMW atomic operations whose names do not end in
65 o RCU's grace-period primitives.
74 smp_mb(); // Order store to x before load from y.
77 All CPUs will agree that the store to "x" happened before the load
[all …]
H A Dexplanation.txt1 Explanation of the Linux-Kernel Memory Consistency Model
15 7. THE PROGRAM ORDER RELATION: po AND po-loc
18 10. THE READS-FROM RELATION: rf, rfi, and rfe
20 12. THE FROM-READS RELATION: fr, fri, and fre
22 14. PROPAGATION ORDER RELATION: cumul-fence
28 20. THE HAPPENS-BEFORE RELATION: hb
29 21. THE PROPAGATES-BEFORE RELATION: pb
30 22. RCU RELATIONS: rcu-link, rcu-gp, rcu-rscsi, rcu-order, rcu-fence, and rb
31 23. SRCU READ-SIDE CRITICAL SECTIONS
39 ------------
[all …]
/linux/Documentation/
H A Dmemory-barriers.txt19 documentation at tools/memory-model/. Nevertheless, even this memory
37 Note also that it is possible that a barrier may be a no-op for an
48 - Device operations.
49 - Guarantees.
53 - Varieties of memory barrier.
54 - What may not be assumed about memory barriers?
55 - Address-dependency barriers (historical).
56 - Control dependencies.
57 - SMP barrier pairing.
58 - Examples of memory barrier sequences.
[all …]
/linux/tools/memory-model/litmus-tests/
H A DREADME6 Test of read-read coherence, that is, whether or not two
10 Test of read-write coherence, that is, whether or not a read
15 Test of write-read coherence, that is, whether or not a write
20 Test of write-write coherence, that is, whether or not two
39 Tests whether the ordering provided by a lock-protected S
45 As below, but with store-release replaced with WRITE_ONCE()
46 and load-acquire replaced with READ_ONCE().
49 Can a release-acquire chain order a prior store against
54 load-buffering litmus test, where each process reads from one
58 Does a release-acquire pair suffice for the load-buffering
[all …]
/linux/Documentation/translations/ko_KR/
H A Dmemory-barriers.txt2 This is a version of Documentation/memory-barriers.txt translated into Korean.
15 Documentation/memory-barriers.txt
39 일부 이상한 점들은 공식적인 메모리 일관성 모델과 tools/memory-model/ 에 있는
60 해당 배리어의 명시적 사용이 불필요해서 no-op 이 될수도 있음을 알아두시기
76 - 디바이스 오퍼레이션.
77 - 보장사항.
81 - 메모리 배리어의 종류.
82 - 메모리 배리어에 대해 가정해선 안될 것.
83 - 주소 데이터 의존성 배리어 (역사적).
84 - 컨트롤 의존성.
[all …]
/linux/Documentation/translations/sp_SP/
H A Dmemory-barriers.txt2 This is a version of Documentation/memory-barriers.txt translated into
35 consistencia de memoria formal y documentación en tools/memory-model/. Sin
53 Tenga en cuenta también que es posible que una barrera no valga (sea no-op)
63 - Operaciones del dispositivo.
64 - Garantías.
68 - Variedades de barrera de memoria.
69 - ¿Qué no se puede asumir sobre las barreras de memoria?
70 - Barreras de dirección-dependencia (históricas).
71 - Dependencias de control.
72 - Emparejamiento de barreras smp.
[all …]
/linux/rust/kernel/sync/atomic/
H A Dordering.rs1 // SPDX-License-Identifier: GPL-2.0
7 //! - [`Acquire`] provides ordering between the load part of the annotated operation and all the
8 //! following memory accesses, and if there is a store part, the store part has the [`Relaxed`]
10 //! - [`Release`] provides ordering between all the preceding memory accesses and the store part of
13 //! - [`Full`] means "fully-ordered", that is:
14 //! - It provides ordering between all the preceding memory accesses and the annotated operation.
15 //! - It provides ordering between the annotated operation and all the following memory accesses.
16 //! - It provides ordering between all the preceding memory accesses and all the following memory
18 //! - All the orderings are the same strength as a full memory barrier (i.e. `smp_mb()`).
19 //! - [`Relaxed`] provides no ordering except the dependency orderings. Dependency orderings are
[all …]
/linux/tools/perf/pmu-events/arch/arm64/arm/neoverse-n1/
H A Dspec_operation.json28 …"PublicDescription": "Counts Load-Exclusive operations that have been speculatively executed. Eg: …
32 …cDescription": "Counts store-exclusive operations that have been speculatively executed and have s…
36 …escription": "Counts store-exclusive operations that have been speculatively executed and have not…
40 … "PublicDescription": "Counts store-exclusive operations that have been speculatively executed."
48 …iption": "Counts speculatively executed store operations including Single Instruction Multiple Dat…
56 …s speculatively executed Advanced SIMD operations excluding load, store and move micro-operations …
80 …udes operations that force a software change of the PC, other than exception-generating operations…
88 …"PublicDescription": "Counts DSB operations that are speculatively issued to Load/Store unit in th…
92 …latively issued to the Load/Store unit in the CPU. This event does not count implied barriers from…
100 …"PublicDescription": "Counts any store release operations that are speculatively executed. Eg: STL…
/linux/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/
H A Dspec_operation.json16 …"PublicDescription": "Counts micro-operations speculatively executed. This is the count of the num…
32 …"PublicDescription": "Counts Load-Exclusive operations that have been speculatively executed. Eg: …
36 …cDescription": "Counts store-exclusive operations that have been speculatively executed and have s…
40 …escription": "Counts store-exclusive operations that have been speculatively executed and have not…
44 … "PublicDescription": "Counts store-exclusive operations that have been speculatively executed."
52 …iption": "Counts speculatively executed store operations including Single Instruction Multiple Dat…
60 …s speculatively executed Advanced SIMD operations excluding load, store and move micro-operations …
84 …udes operations that force a software change of the PC, other than exception-generating operations…
92 …"PublicDescription": "Counts DSB operations that are speculatively issued to Load/Store unit in th…
96 …latively issued to the Load/Store unit in the CPU. This event does not count implied barriers from…
[all …]
/linux/drivers/edac/
H A Dedac_pci_sysfs.c23 static int edac_pci_log_npe = 1; /* log PCI non-parity error errors */
61 return sprintf(data, "%u\n", atomic_read(&pci->counters.pe_count)); in instance_pe_count_show()
67 return sprintf(data, "%u\n", atomic_read(&pci->counters.npe_count)); in instance_npe_count_show()
73 /* DEVICE instance kobject release() function */
93 ssize_t(*store) (struct edac_pci_ctl_info *, const char *, size_t); member
103 if (instance_attr->show) in edac_pci_instance_show()
104 return instance_attr->show(pci, buffer); in edac_pci_instance_show()
105 return -EIO; in edac_pci_instance_show()
108 /* Function to 'store' fields into the edac_pci 'instance' structure */
116 if (instance_attr->store) in edac_pci_instance_store()
[all …]
H A Dedac_device_sysfs.c28 * Set of edac_device_ctl_info attribute store/show functions
35 return sprintf(data, "%u\n", ctl_info->log_ue); in edac_device_ctl_log_ue_show()
42 /* if parameter is zero, turn off flag, if non-zero turn on flag */ in edac_device_ctl_log_ue_store()
43 ctl_info->log_ue = (simple_strtoul(data, NULL, 0) != 0); in edac_device_ctl_log_ue_store()
52 return sprintf(data, "%u\n", ctl_info->log_ce); in edac_device_ctl_log_ce_show()
59 /* if parameter is zero, turn off flag, if non-zero turn on flag */ in edac_device_ctl_log_ce_store()
60 ctl_info->log_ce = (simple_strtoul(data, NULL, 0) != 0); in edac_device_ctl_log_ce_store()
69 return sprintf(data, "%u\n", ctl_info->panic_on_ue); in edac_device_ctl_panic_on_ue_show()
76 /* if parameter is zero, turn off flag, if non-zero turn on flag */ in edac_device_ctl_panic_on_ue_store()
77 ctl_info->panic_on_ue = (simple_strtoul(data, NULL, 0) != 0); in edac_device_ctl_panic_on_ue_store()
[all …]
/linux/arch/arm64/net/
H A Dbpf_jit.h1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * Copyright (C) 2014-2016 Zi Shen Lim <zlim.lnx@gmail.com>
12 /* 5-bit Register Operand */
55 /* Load/store register (register offset) */
60 #define A64_STRB(Wt, Xn, Xm) A64_LS_REG(Wt, Xn, Xm, 8, STORE)
63 #define A64_STRH(Wt, Xn, Xm) A64_LS_REG(Wt, Xn, Xm, 16, STORE)
66 #define A64_STR32(Wt, Xn, Xm) A64_LS_REG(Wt, Xn, Xm, 32, STORE)
69 #define A64_STR64(Xt, Xn, Xm) A64_LS_REG(Xt, Xn, Xm, 64, STORE)
72 /* Load/store register (immediate offset) */
77 #define A64_STRBI(Wt, Xn, imm) A64_LS_IMM(Wt, Xn, imm, 8, STORE)
[all …]
/linux/include/linux/
H A Datomic.h1 /* SPDX-License-Identifier: GPL-2.0 */
15 * - Fully ordered: The default implementation, no suffix required.
16 * - Acquire: Provides ACQUIRE semantics, _acquire suffix.
17 * - Release: Provides RELEASE semantics, _release suffix.
18 * - Relaxed: No ordering guarantees, _relaxed suffix.
20 * For compound atomics performing both a load and a store, ACQUIRE
21 * semantics apply only to the load and RELEASE semantics only to the
22 * store portion of the operation. Note that a failed cmpxchg_acquire
23 * does -not- imply any memory ordering constraints.
25 * See Documentation/memory-barriers.txt for ACQUIRE/RELEASE definitions.
[all …]
H A Discsi_boot_sysfs.h1 /* SPDX-License-Identifier: GPL-2.0-only */
27 /* eth_pci_bdf - this is replaced by link to the device itself. */
73 * Pointer to store driver specific info. If set this will
74 * be freed for the LLD when the kobj release function is called.
96 * Driver specific release function.
100 void (*release) (void *data); member
113 void (*release) (void *data));
120 void (*release) (void *data));
126 void (*release) (void *data));
133 void (*release)(void *data));
/linux/samples/kobject/
H A Dkset-example.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2004-2007 Greg Kroah-Hartman <greg@kroah.com>
41 ssize_t (*store)(struct foo_obj *foo, const struct foo_attribute *attr, member
63 if (!attribute->show) in foo_attr_show()
64 return -EIO; in foo_attr_show()
66 return attribute->show(foo, attribute, buf); in foo_attr_show()
71 * sysfs "store" is requested (when a value is written to a file.)
83 if (!attribute->store) in foo_attr_store()
84 return -EIO; in foo_attr_store()
86 return attribute->store(foo, attribute, buf, len); in foo_attr_store()
[all …]
/linux/arch/powerpc/kernel/
H A Dmce.c1 // SPDX-License-Identifier: GPL-2.0-or-later
52 mce->error_type = mce_err->error_type; in mce_set_error_info()
53 switch (mce_err->error_type) { in mce_set_error_info()
55 mce->u.ue_error.ue_error_type = mce_err->u.ue_error_type; in mce_set_error_info()
58 mce->u.slb_error.slb_error_type = mce_err->u.slb_error_type; in mce_set_error_info()
61 mce->u.erat_error.erat_error_type = mce_err->u.erat_error_type; in mce_set_error_info()
64 mce->u.tlb_error.tlb_error_type = mce_err->u.tlb_error_type; in mce_set_error_info()
67 mce->u.user_error.user_error_type = mce_err->u.user_error_type; in mce_set_error_info()
70 mce->u.ra_error.ra_error_type = mce_err->u.ra_error_type; in mce_set_error_info()
73 mce->u.link_error.link_error_type = mce_err->u.link_error_type; in mce_set_error_info()
[all …]
/linux/drivers/s390/char/
H A Dsclp_sd.c1 // SPDX-License-Identifier: GPL-2.0
3 * SCLP Store Data support and sysfs interface
53 * struct sclp_sd_data - Result of a Store Data request
56 * @data: Pointer to data - must be released using vfree()
65 * struct sclp_sd_listener - Listener for asynchronous Store Data response
69 * @evbuf: Contains the resulting Store Data response after completion
79 * struct sclp_sd_file - Sysfs representation of a Store Data entity
102 * sclp_sd_listener_add() - Add listener for Store Data responses
108 list_add_tail(&listener->list, &sclp_sd_queue); in sclp_sd_listener_add()
113 * sclp_sd_listener_remove() - Remove listener for Store Data responses
[all …]
/linux/drivers/powercap/
H A Dpowercap_sys.c1 // SPDX-License-Identifier: GPL-2.0-only
25 ssize_t len = -EINVAL; \
28 if (power_zone->ops->get_##_attr) { \
29 if (!power_zone->ops->get_##_attr(power_zone, &value)) \
48 return -EINVAL; \
51 if (power_zone->ops->reset_##_attr) { \
52 if (!power_zone->ops->reset_##_attr(power_zone)) \
56 return -EINVAL; \
66 ssize_t len = -ENODATA; \
71 if (!sscanf(dev_attr->attr.name, "constraint_%d_", &id)) \
[all …]
/linux/fs/xfs/
H A Dxfs_mru_cache.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2006-2007 Silicon Graphics, Inc.
10 * The MRU Cache data structure consists of a data store, an array of lists and
29 * inserted at the head of the current most-recently-used list.
37 * to remain in the data store even after they've been inactive for up to
78 * both the data store and to one of the lists. It must also be possible to
81 * a) Walk a list, removing the corresponding data store entry for each item.
82 * b) Look up a data store entry, then access its list entry directly.
88 * likely result in a loop in one of the lists. That's a sure-fire recipe for
92 struct radix_tree_root store; /* Core storage data structure. */ member
[all …]
H A Dxfs_sysfs.c1 // SPDX-License-Identifier: GPL-2.0
21 ssize_t (*store)(struct kobject *kobject, const char *buf, member
48 return xfs_attr->show ? xfs_attr->show(kobject, buf) : 0; in xfs_sysfs_object_show()
60 return xfs_attr->store ? xfs_attr->store(kobject, buf, count) : 0; in xfs_sysfs_object_store()
65 .store = xfs_sysfs_object_store,
74 .release = xfs_sysfs_release,
100 return -EINVAL; in bug_on_assert_store()
128 return -EINVAL; in log_recovery_delay_store()
158 return -EINVAL; in mount_delay_store()
199 * This has to be a debug-only global (instead of an errortag) because one of
[all …]
/linux/arch/powerpc/platforms/pseries/
H A Dvas-sysfs.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright 2022-23 IBM Corp.
48 err = vas_reconfig_capabilties(caps->win_type, creds); in update_total_credits_store()
51 return -EINVAL; in update_total_credits_store()
61 return sprintf(buf, "%d\n", atomic_read(&caps->_name)); \
67 ssize_t (*store)(struct vas_cop_feat_caps *, const char *, size_t); member
129 caps = centry->caps; in vas_type_show()
132 if (!entry->show) in vas_type_show()
133 return -EIO; in vas_type_show()
135 return entry->show(caps, buf); in vas_type_show()
[all …]
/linux/fs/afs/
H A Dafs_fs.h1 /* SPDX-License-Identifier: GPL-2.0-or-later */
18 FSSTOREDATA = 133, /* AFS Store file data */
19 FSSTOREACL = 134, /* AFS Store file ACL */
20 FSSTORESTATUS = 135, /* AFS Store file status */
35 FSRELEASELOCK = 158, /* AFS Release a file lock */
39 FSSTOREDATA64 = 65538, /* AFS Store file data */
45 VRESTARTING = -100, /* Server is restarting */
51 VOFFLINE = 106, /* volume is currently offline (more info available [VVL-spec]) */
56 VMOVED = 111, /* volume moved to new server - ask this FS where */
/linux/tools/testing/selftests/rseq/
H A Drseq-ppc-bits.h1 /* SPDX-License-Identifier: LGPL-2.1 OR MIT */
3 * rseq-ppc-bits.h
5 * (C) Copyright 2016-2018 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 * (C) Copyright 2016-2018 - Boqun Feng <boqun.feng@gmail.com>
9 #include "rseq-bits-template.h"
40 /* final store */ in RSEQ_TEMPLATE_IDENTIFIER()
46 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
47 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
64 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
107 /* store it in @load */ in RSEQ_TEMPLATE_IDENTIFIER()
[all …]

12345678910>>...36