/linux-6.14.4/drivers/md/dm-vdo/indexer/ |
D | io-factory.c | 43 * The buffered writer allows efficient I/O by buffering writes and committing page-sized segments 273 /* Create a buffered writer for an index region starting at offset. */ 279 struct buffered_writer *writer; in uds_make_buffered_writer() local 285 result = vdo_allocate(1, struct buffered_writer, "buffered writer", &writer); in uds_make_buffered_writer() 291 *writer = (struct buffered_writer) { in uds_make_buffered_writer() 303 *writer_ptr = writer; in uds_make_buffered_writer() 307 static size_t get_remaining_write_space(struct buffered_writer *writer) in get_remaining_write_space() argument 309 return writer->start + UDS_BLOCK_SIZE - writer->end; in get_remaining_write_space() 312 static int __must_check prepare_next_buffer(struct buffered_writer *writer) in prepare_next_buffer() argument 317 if (writer->block_number >= writer->limit) { in prepare_next_buffer() [all …]
|
D | index.c | 27 * chapter writer, and sparse cache barrier messages for the sparse cache. 29 * The chapter writer is responsible for committing chapters of records to storage. Since zones can 31 * its available space in a chapter, it informs the chapter writer that the chapter is complete, 34 * Once every zone has closed the chapter, the chapter writer will commit that chapter to storage. 66 /* The number of bytes allocated by the chapter writer */ 182 struct chapter_writer *writer = index->chapter_writer; in finish_previous_chapter() local 184 mutex_lock(&writer->mutex); in finish_previous_chapter() 186 uds_wait_cond(&writer->cond, &writer->mutex); in finish_previous_chapter() 187 result = writer->result; in finish_previous_chapter() 188 mutex_unlock(&writer->mutex); in finish_previous_chapter() [all …]
|
D | index-layout.c | 516 struct buffered_writer *writer) in write_index_save_header() argument 540 result = uds_write_to_buffered_writer(writer, buffer, offset); in write_index_save_header() 545 return uds_flush_buffered_writer(writer); in write_index_save_header() 553 struct buffered_writer *writer; in write_index_save_layout() local 559 result = open_region_writer(layout, &isl->header, &writer); in write_index_save_layout() 565 result = write_index_save_header(isl, table, writer); in write_index_save_layout() 567 uds_free_buffered_writer(writer); in write_index_save_layout() 686 struct buffered_writer *writer) in write_layout_header() argument 715 result = uds_write_to_buffered_writer(writer, buffer, offset); in write_layout_header() 720 return uds_flush_buffered_writer(writer); in write_layout_header() [all …]
|
D | io-factory.h | 13 * clients are the index layout and the volume. The buffered reader and buffered writer interfaces 59 int __must_check uds_write_to_buffered_writer(struct buffered_writer *writer, 62 int __must_check uds_flush_buffered_writer(struct buffered_writer *writer);
|
/linux-6.14.4/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-6.14.4/include/linux/ |
D | seqlock_types.h | 12 * This is the raw counting mechanism, without any writer protection. 21 * as the writer can invalidate a pointer that a reader is following. 27 * If it's desired to automatically handle the sequence counter writer 47 * reader preempting the writer, use a different technique: let the reader 48 * detect if a seqcount_LOCKNAME_t writer is in progress. If that is the 49 * case, acquire then release the associated LOCKNAME writer serialization 50 * lock. This will allow any possibly-preempted writer to make progress 51 * until the end of its writer serialization lock critical section. 77 * Sequence counters with an embedded spinlock for writer serialization
|
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 414 * writer, you don't need extra locking to use these macro. 451 * writer, you don't need extra locking to use these macro. 490 * writer, you don't need extra locking to use these macro. 528 * writer, you don't need extra locking to use these macro. 596 * writer, you don't need extra locking to use these macro. 671 * writer, you don't need extra locking to use these macro. 699 * writer, you don't need extra locking to use these macro. [all …]
|
/linux-6.14.4/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() 235 * 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 82 * Reader1 Reader2 Writer in __rwbase_read_lock() 90 * wake(Writer) in __rwbase_read_lock() 104 * That would put Reader1 behind the writer waiting on in __rwbase_read_lock() 117 * 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 <[email protected]> 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 292 * by a writer. [all …]
|
/linux-6.14.4/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-6.14.4/drivers/iommu/arm/arm-smmu-v3/ |
D | arm-smmu-v3-test.c | 11 struct arm_smmu_entry_writer writer; member 54 arm_smmu_test_writer_record_syncs(struct arm_smmu_entry_writer *writer) in arm_smmu_test_writer_record_syncs() argument 57 container_of(writer, struct arm_smmu_test_writer, writer); in arm_smmu_test_writer_record_syncs() 81 writer->ops->get_used(test_writer->entry, entry_used_bits); in arm_smmu_test_writer_record_syncs() 95 arm_smmu_v3_test_debug_print_used_bits(struct arm_smmu_entry_writer *writer, in arm_smmu_v3_test_debug_print_used_bits() argument 123 .writer = { in arm_smmu_v3_test_ste_expect_transition() 138 arm_smmu_v3_test_debug_print_used_bits(&test_writer.writer, cur->data); in arm_smmu_v3_test_ste_expect_transition() 142 arm_smmu_v3_test_debug_print_used_bits(&test_writer.writer, in arm_smmu_v3_test_ste_expect_transition() 145 arm_smmu_write_entry(&test_writer.writer, cur_copy.data, target->data); in arm_smmu_v3_test_ste_expect_transition() 407 .writer = { in arm_smmu_v3_test_cd_expect_transition() [all …]
|
/linux-6.14.4/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-6.14.4/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 705 stream = bt_ctf_writer_create_stream(cw->writer, cw->stream_class); in ctf_stream__create() [all …]
|
/linux-6.14.4/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)
|
/linux-6.14.4/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-6.14.4/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-6.14.4/drivers/gpu/drm/amd/display/dc/ |
D | dm_pp_smu.h | 106 /* reader and writer WM's are sent together as part of one table*/ 206 /* reader and writer WM's are sent together as part of one table*/ 215 * writer fill clk = socclk 216 * writer drain clk = uclk 275 * reader and writer WM's are sent together as part of one table 293 * reader and writer WM's are sent together as part of one table
|
/linux-6.14.4/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-6.14.4/kernel/printk/ |
D | printk_ringbuffer.h | 34 * Using prb_rec_init_wr(), a writer sets @text_buf_size before calling 36 * buffers reserved for that writer. 118 desc_reserved = 0x0, /* reserved, in use by writer */ 119 desc_committed = 0x1, /* committed by writer, could get reopened */ 121 desc_reusable = 0x3, /* free, not yet used by any writer */ 171 * The first record reserved by a writer is assigned sequence number 0. 183 * writer (head + 1) to be the first descriptor in the array. (Only the first 217 * writer, which has the assigned sequence number 0. 261 /* this will be the first record reserved by a writer */ \ 306 /* Writer Interface */
|
/linux-6.14.4/fs/btrfs/ |
D | locking.c | 122 * - reader/writer exclusion 123 * - writer/writer exclusion 305 * DREW stands for double-reader-writer-exclusion lock. It's used in situation 309 * writer both race to acquire their respective sides of the lock the writer 368 * the last active writer finishes its jobs. in btrfs_drew_read_lock()
|
/linux-6.14.4/arch/parisc/include/asm/ |
D | spinlock.h | 71 * Read-write spinlocks, allowing multiple readers but only one writer. 88 * zero means writer holds the lock exclusively, deny Reader. in arch_read_trylock() 113 * deny writer. Otherwise if unlocked grant to writer in arch_write_trylock()
|
/linux-6.14.4/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()
|