| /kernel/linux/linux-5.10/Documentation/trace/ |
| D | ring-buffer-design.rst | 28 - the task that writes into the ring buffer (same as writer) 30 writer 81 but a writer may interrupt another writer, but it must finish writing 82 before the previous writer may continue. This is very important to the 94 This is very much like a writer being preempted by an interrupt and 99 cannot preempt/interrupt a writer, but it may read/consume from the 100 buffer at the same time as a writer is writing, but the reader must be 102 and can be preempted by a writer. 104 A writer can preempt a reader, but a reader cannot preempt a writer. 106 as a writer. [all …]
|
| /kernel/linux/linux-6.6/Documentation/trace/ |
| D | ring-buffer-design.rst | 28 - the task that writes into the ring buffer (same as writer) 30 writer 81 but a writer may interrupt another writer, but it must finish writing 82 before the previous writer may continue. This is very important to the 94 This is very much like a writer being preempted by an interrupt and 99 cannot preempt/interrupt a writer, but it may read/consume from the 100 buffer at the same time as a writer is writing, but the reader must be 102 and can be preempted by a writer. 104 A writer can preempt a reader, but a reader cannot preempt a writer. 106 as a writer. [all …]
|
| /kernel/linux/linux-5.10/kernel/locking/ |
| D | percpu-rwsem.c | 20 rcuwait_init(&sem->writer); in __percpu_init_rwsem() 55 * If the reader misses the writer's assignment of sem->block, then the in __percpu_down_read_trylock() 56 * writer is guaranteed to see the reader's increment. in __percpu_down_read_trylock() 59 * the writer looks are guaranteed to see the sem->block value, which in __percpu_down_read_trylock() 61 * their sem->read_count, so that it doesn't matter that the writer in __percpu_down_read_trylock() 76 /* Prod writer to re-evaluate readers_active_check() */ in __percpu_down_read_trylock() 77 rcuwait_wake_up(&sem->writer); in __percpu_down_read_trylock() 114 * Specifically, we wake readers until we've woken a single writer, or until a 136 return !reader; /* wake (readers until) 1 writer */ in percpu_rwsem_wake_function() 223 * Try set sem->block; this provides writer-writer exclusion. in percpu_down_write() [all …]
|
| D | rwsem.c | 7 * Writer lock-stealing by Alex Shi <alex.shi@intel.com> 40 * When the rwsem is either owned by an anonymous writer, or it is 41 * reader-owned, but a spinning writer has timed out, both nonspinnable 44 * writer nonspinnable bit and clear it only to give writers preference 48 * When a writer acquires a rwsem, it puts its task_struct pointer 64 * relatively more preferred than writers. When a writer times out spinning 82 * Therefore, any writers that had observed the setting of the writer 90 * a writer is able to acquire the rwsem in the fast path or somehow a 91 * reader or writer in the slowpath doesn't observe the nonspinable bit. 121 * Bit 0 - writer locked bit [all …]
|
| /kernel/linux/linux-6.6/kernel/locking/ |
| D | percpu-rwsem.c | 22 rcuwait_init(&sem->writer); in __percpu_init_rwsem() 57 * If the reader misses the writer's assignment of sem->block, then the in __percpu_down_read_trylock() 58 * writer is guaranteed to see the reader's increment. in __percpu_down_read_trylock() 61 * the writer looks are guaranteed to see the sem->block value, which in __percpu_down_read_trylock() 63 * their sem->read_count, so that it doesn't matter that the writer in __percpu_down_read_trylock() 78 /* Prod writer to re-evaluate readers_active_check() */ in __percpu_down_read_trylock() 79 rcuwait_wake_up(&sem->writer); in __percpu_down_read_trylock() 116 * Specifically, we wake readers until we've woken a single writer, or until a 138 return !reader; /* wake (readers until) 1 writer */ in percpu_rwsem_wake_function() 234 * Try set sem->block; this provides writer-writer exclusion. in percpu_down_write() [all …]
|
| D | rwbase_rt.c | 4 * RT-specific reader/writer semaphores and reader/writer locks 26 * 2) Wake the writer waiting in down_write()/write_lock() #3 29 * locks on RT are not writer fair, but writers, which should be avoided in 33 * It's possible to make the rw primitives writer fair by keeping a list of 34 * active readers. A blocked writer would force all newly incoming readers 41 * The risk of writer starvation is there, but the pathological use cases 80 * Reader1 Reader2 Writer in __rwbase_read_lock() 88 * wake(Writer) in __rwbase_read_lock() 102 * That would put Reader1 behind the writer waiting on in __rwbase_read_lock() 115 * On success the rtmutex is held, so there can't be a writer in __rwbase_read_lock() [all …]
|
| D | rwsem.c | 7 * Writer lock-stealing by Alex Shi <alex.shi@intel.com> 41 * When the rwsem is reader-owned and a spinning writer has timed out, 44 * When a writer acquires a rwsem, it puts its task_struct pointer 59 * is previously owned by a writer and the following conditions are met: 60 * - rwsem is not currently writer owned 84 * Bit 0 - writer locked bit 93 * Bit 0 - writer locked bit 106 * atomic_long_cmpxchg() will be used to obtain writer lock. 113 * For all the above cases, wait_lock will be held. A writer must also 294 * by a writer. [all …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | percpu-rwsem.h | 15 struct rcuwait writer; member 34 .writer = __RCUWAIT_INITIALIZER(name.writer), \ 55 * We are in an RCU-sched read-side critical section, so the writer in percpu_down_read() 58 * the writer won't be checking until we're past the preempt_enable() in percpu_down_read() 59 * and that once the synchronize_rcu() is done, the writer will see in percpu_down_read() 110 * writer. in percpu_up_read() 119 rcuwait_wake_up(&sem->writer); in percpu_up_read()
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | percpu-rwsem.h | 15 struct rcuwait writer; member 34 .writer = __RCUWAIT_INITIALIZER(name.writer), \ 55 * We are in an RCU-sched read-side critical section, so the writer in percpu_down_read() 58 * the writer won't be checking until we're past the preempt_enable() in percpu_down_read() 59 * and that once the synchronize_rcu() is done, the writer will see in percpu_down_read() 110 * writer. in percpu_up_read() 119 rcuwait_wake_up(&sem->writer); in percpu_up_read()
|
| /kernel/linux/linux-6.6/Documentation/locking/ |
| D | seqlock.rst | 8 Sequence counters are a reader-writer consistency mechanism with 9 lockless readers (read-only retry loops), and no writer starvation. They 30 interrupted writer. If that reader belongs to a real-time scheduling 34 as the writer can invalidate a pointer that the reader is following. 53 requirements of writer serialization and non-preemptibility, use 97 sequence counters associate the lock used for writer serialization at 165 embedded spinlock for writer serialization and non-preemptibility. 195 1. Normal Sequence readers which never block a writer but they must 196 retry if a writer is in progress by detecting change in the sequence 206 2. Locking readers which will wait if a writer or another locking reader [all …]
|
| D | locktypes.rst | 135 rw_semaphore is a multiple readers and single writer lock mechanism. 138 writer starvation. 150 Because an rw_semaphore writer cannot grant its priority to multiple 153 can grant their priority to a writer, a preempted low-priority writer will 155 writer from starving readers. 299 rwlock_t is a multiple readers and single writer lock mechanism. 303 thus preventing writer starvation. 313 - Because an rwlock_t writer cannot grant its priority to multiple 316 can grant their priority to a writer, a preempted low-priority writer 318 preventing that writer from starving readers.
|
| /kernel/linux/linux-5.10/Documentation/locking/ |
| D | seqlock.rst | 8 Sequence counters are a reader-writer consistency mechanism with 9 lockless readers (read-only retry loops), and no writer starvation. They 30 interrupted writer. If that reader belongs to a real-time scheduling 34 as the writer can invalidate a pointer that the reader is following. 53 requirements of writer serialization and non-preemptibility, use 97 sequence counters associate the lock used for writer serialization at 165 embedded spinlock for writer serialization and non-preemptibility. 195 1. Normal Sequence readers which never block a writer but they must 196 retry if a writer is in progress by detecting change in the sequence 206 2. Locking readers which will wait if a writer or another locking reader [all …]
|
| D | locktypes.rst | 135 rw_semaphore is a multiple readers and single writer lock mechanism. 138 writer starvation. 150 Because an rw_semaphore writer cannot grant its priority to multiple 153 can grant their priority to a writer, a preempted low-priority writer will 155 writer from starving readers. 302 rwlock_t is a multiple readers and single writer lock mechanism. 306 thus preventing writer starvation. 316 - Because an rwlock_t writer cannot grant its priority to multiple 319 can grant their priority to a writer, a preempted low-priority writer 321 preventing that writer from starving readers.
|
| /kernel/linux/linux-6.6/kernel/trace/ |
| D | trace_recursion_record.c | 43 * If there's two writers and this writer comes in second, in ftrace_record_recursion() 45 * writer will try again. It is possible that index will now in ftrace_record_recursion() 46 * be greater than nr_records. This is because the writer in ftrace_record_recursion() 48 * This writer could keep trying again until the other writer in ftrace_record_recursion() 49 * updates nr_records. But if the other writer takes an in ftrace_record_recursion() 54 * writer will simply use the next position to update the in ftrace_record_recursion()
|
| /kernel/linux/linux-6.6/scripts/ |
| D | jobserver-exec | 30 # Starting with GNU Make 4.4, named pipes are used for reader and writer. 36 writer = os.open(path, os.O_WRONLY) variable 38 reader, writer = [int(x) for x in fds.split(",", 1)] variable 55 os.write(writer, jobs) 75 os.write(writer, jobs)
|
| /kernel/linux/linux-6.6/tools/perf/util/ |
| D | data-convert-bt.c | 14 #include <babeltrace/ctf-writer/writer.h> 15 #include <babeltrace/ctf-writer/clock.h> 16 #include <babeltrace/ctf-writer/stream.h> 17 #include <babeltrace/ctf-writer/event.h> 18 #include <babeltrace/ctf-writer/event-types.h> 19 #include <babeltrace/ctf-writer/event-fields.h> 63 /* writer primitives */ 64 struct bt_ctf_writer *writer; member 92 struct ctf_writer writer; member 704 stream = bt_ctf_writer_create_stream(cw->writer, cw->stream_class); in ctf_stream__create() [all …]
|
| /kernel/linux/linux-5.10/tools/perf/util/ |
| D | data-convert-bt.c | 14 #include <babeltrace/ctf-writer/writer.h> 15 #include <babeltrace/ctf-writer/clock.h> 16 #include <babeltrace/ctf-writer/stream.h> 17 #include <babeltrace/ctf-writer/event.h> 18 #include <babeltrace/ctf-writer/event-types.h> 19 #include <babeltrace/ctf-writer/event-fields.h> 59 /* writer primitives */ 60 struct bt_ctf_writer *writer; member 88 struct ctf_writer writer; member 698 stream = bt_ctf_writer_create_stream(cw->writer, cw->stream_class); in ctf_stream__create() [all …]
|
| /kernel/linux/linux-6.6/drivers/acpi/acpica/ |
| D | utlock.c | 4 * Module Name: utlock - Reader/Writer lock interfaces 25 * DESCRIPTION: Reader/writer lock creation and deletion interfaces. 62 * DESCRIPTION: Reader interfaces for reader/writer locks. On acquisition, 122 * DESCRIPTION: Writer interfaces for reader/writer locks. Simply acquire or 123 * release the writer mutex associated with the lock. Acquisition
|
| /kernel/linux/linux-5.10/drivers/acpi/acpica/ |
| D | utlock.c | 4 * Module Name: utlock - Reader/Writer lock interfaces 25 * DESCRIPTION: Reader/writer lock creation and deletion interfaces. 62 * DESCRIPTION: Reader interfaces for reader/writer locks. On acquisition, 122 * DESCRIPTION: Writer interfaces for reader/writer locks. Simply acquire or 123 * release the writer mutex associated with the lock. Acquisition
|
| /kernel/linux/linux-5.10/arch/arc/include/asm/ |
| D | spinlock.h | 75 * Read-write spinlocks, allowing multiple readers but only one writer. 84 * zero means writer holds the lock exclusively, deny Reader. in arch_read_lock() 140 * deny writer. Otherwise if unlocked grant to writer in arch_write_lock() 290 * Read-write spinlocks, allowing multiple readers but only one writer. 307 * zero means writer holds the lock exclusively, deny Reader. in arch_read_trylock() 332 * deny writer. Otherwise if unlocked grant to writer in arch_write_trylock()
|
| /kernel/linux/linux-6.6/arch/arc/include/asm/ |
| D | spinlock.h | 75 * Read-write spinlocks, allowing multiple readers but only one writer. 84 * zero means writer holds the lock exclusively, deny Reader. in arch_read_lock() 140 * deny writer. Otherwise if unlocked grant to writer in arch_write_lock() 290 * Read-write spinlocks, allowing multiple readers but only one writer. 307 * zero means writer holds the lock exclusively, deny Reader. in arch_read_trylock() 332 * deny writer. Otherwise if unlocked grant to writer in arch_write_trylock()
|
| /kernel/linux/linux-6.6/kernel/printk/ |
| D | printk_ringbuffer.h | 31 * Using prb_rec_init_wr(), a writer sets @text_buf_size before calling 33 * buffers reserved for that writer. 115 desc_reserved = 0x0, /* reserved, in use by writer */ 116 desc_committed = 0x1, /* committed by writer, could get reopened */ 118 desc_reusable = 0x3, /* free, not yet used by any writer */ 154 * The first record reserved by a writer is assigned sequence number 0. 166 * writer (head + 1) to be the first descriptor in the array. (Only the first 200 * writer, which has the assigned sequence number 0. 244 /* this will be the first record reserved by a writer */ \ 289 /* Writer Interface */
|
| /kernel/linux/linux-5.10/kernel/printk/ |
| D | printk_ringbuffer.h | 31 * Using prb_rec_init_wr(), a writer sets @text_buf_size before calling 33 * buffers reserved for that writer. 114 desc_reserved = 0x0, /* reserved, in use by writer */ 115 desc_committed = 0x1, /* committed by writer, could get reopened */ 117 desc_reusable = 0x3, /* free, not yet used by any writer */ 153 * The first record reserved by a writer is assigned sequence number 0. 165 * writer (head + 1) to be the first descriptor in the array. (Only the first 199 * writer, which has the assigned sequence number 0. 243 /* this will be the first record reserved by a writer */ \ 287 /* Writer Interface */
|
| /kernel/linux/linux-5.10/arch/parisc/include/asm/ |
| D | spinlock.h | 59 * Read-write spinlocks, allowing multiple readers but only one writer. 76 * zero means writer holds the lock exclusively, deny Reader. in arch_read_trylock() 101 * deny writer. Otherwise if unlocked grant to writer in arch_write_trylock()
|
| /kernel/linux/linux-5.10/include/asm-generic/ |
| D | qrwlock.h | 19 * Writer states & reader shift and bias. 21 #define _QW_WAITING 0x100 /* A writer is waiting */ 22 #define _QW_LOCKED 0x0ff /* A writer holds the lock */ 23 #define _QW_WMASK 0x1ff /* Writer mask */
|