/Linux-v6.1/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 …]
|
/Linux-v6.1/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 76 * Allow readers, as long as the writer has not completely in __rwbase_read_lock() 89 * Reader1 Reader2 Writer in __rwbase_read_lock() 97 * wake(Writer) in __rwbase_read_lock() 111 * That would put Reader1 behind the writer waiting on 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 297 * by a writer. [all …]
|
D | qrwlock.c | 29 * if the writer is just waiting (not holding the lock yet), in queued_read_lock_slowpath() 72 /* Put the writer into the wait queue */ in queued_write_lock_slowpath() 80 /* Set the waiting flag to notify readers that a writer is pending */ in queued_write_lock_slowpath()
|
/Linux-v6.1/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()
|
D | kfifo.h | 31 * and one writer is using the fifo and no kfifo_reset() will be called. 34 * For multiple writer and one reader there is only a need to lock the writer. 35 * And vice versa for only one writer and multiple reader there is only a need 403 * writer, you don't need extra locking to use these macro. 440 * writer, you don't need extra locking to use these macro. 479 * writer, you don't need extra locking to use these macro. 517 * writer, you don't need extra locking to use these macro. 585 * writer, you don't need extra locking to use these macro. 660 * writer, you don't need extra locking to use these macro. 688 * writer, you don't need extra locking to use these macro. [all …]
|
D | seqlock.h | 6 * seqcount_t / seqlock_t - a reader-writer consistency mechanism with 7 * lockless readers (read-only retry loops), and no writer starvation. 43 * This is the raw counting mechanism, without any writer protection. 52 * as the writer can invalidate a pointer that a reader is following. 58 * If it's desired to automatically handle the sequence counter writer 122 * A sequence counter which associates the lock used for writer 141 * reader preempting the writer, use a different technique: let the reader 142 * detect if a seqcount_LOCKNAME_t writer is in progress. If that is the 143 * case, acquire then release the associated LOCKNAME writer serialization 144 * lock. This will allow any possibly-preempted writer to make progress [all …]
|
/Linux-v6.1/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.
|
/Linux-v6.1/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()
|
/Linux-v6.1/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 700 stream = bt_ctf_writer_create_stream(cw->writer, cw->stream_class); in ctf_stream__create() [all …]
|
/Linux-v6.1/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
|
/Linux-v6.1/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()
|
/Linux-v6.1/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 */
|
D | printk_ringbuffer.c | 48 * A writer is modifying the record. 51 * The record and all its data are written. A writer can reopen the 57 * writer cannot reopen the descriptor. 86 * When a writer calls the commit function prb_commit(), record data is 87 * fully stored and is consistent within the ringbuffer. However, a writer can 89 * modify that record. When finished, the writer must again commit the record. 96 * 1) A writer can simultaneously commit and finalize its record by calling 114 * Each data block consists of an ID followed by the writer data. The ID is 127 * If the writer data of a data block would extend beyond the end of the 129 * position and the full data block (ID and writer data) is stored at the [all …]
|
/Linux-v6.1/arch/parisc/include/asm/ |
D | spinlock.h | 44 * Read-write spinlocks, allowing multiple readers but only one writer. 61 * zero means writer holds the lock exclusively, deny Reader. in arch_read_trylock() 86 * deny writer. Otherwise if unlocked grant to writer in arch_write_trylock()
|
/Linux-v6.1/drivers/gpu/drm/amd/display/dc/ |
D | dm_pp_smu.h | 105 /* reader and writer WM's are sent together as part of one table*/ 205 /* reader and writer WM's are sent together as part of one table*/ 214 * writer fill clk = socclk 215 * writer drain clk = uclk 272 * reader and writer WM's are sent together as part of one table 290 * reader and writer WM's are sent together as part of one table
|
/Linux-v6.1/Documentation/devicetree/bindings/mmc/ |
D | litex,mmc.yaml | 31 - description: DMA Writer buffer 40 - const: writer 74 reg-names = "phy", "core", "reader", "writer", "irq";
|
/Linux-v6.1/tools/testing/radix-tree/ |
D | regression4.c | 60 pthread_t reader, writer; in regression4_test() local 68 pthread_create(&writer, NULL, writer_fn, NULL)) { in regression4_test() 73 if (pthread_join(reader, NULL) || pthread_join(writer, NULL)) { in regression4_test()
|
/Linux-v6.1/include/asm-generic/ |
D | qrwlock.h | 25 * Writer states & reader shift and bias. 27 #define _QW_WAITING 0x100 /* A writer is waiting */ 28 #define _QW_LOCKED 0x0ff /* A writer holds the lock */ 29 #define _QW_WMASK 0x1ff /* Writer mask */
|
/Linux-v6.1/fs/btrfs/ |
D | locking.c | 110 * - reader/writer exclusion 111 * - writer/writer exclusion 317 * DREW stands for double-reader-writer-exclusion lock. It's used in situation 321 * writer both race to acquire their respective sides of the lock the writer 388 * the last active writer finishes its jobs. in btrfs_drew_read_lock()
|
/Linux-v6.1/scripts/ |
D | jobserver-exec | 27 reader, writer = [int(x) for x in fds.split(",", 1)] variable 44 os.write(writer, jobs) 64 os.write(writer, jobs)
|
/Linux-v6.1/tools/build/feature/ |
D | test-libbabeltrace.c | 3 #include <babeltrace/ctf-writer/writer.h>
|
/Linux-v6.1/arch/sparc/include/asm/ |
D | spinlock_32.h | 54 * but only one writer. 58 * can "mix" irq-safe locks - any writer needs to get a 72 * wlock signifies the one writer is in or somebody is updating 73 * counter. For a writer, if he successfully acquires the wlock,
|