| /linux/include/linux/ |
| H A D | rwbase_rt.h | 12 atomic_t readers; member 18 .readers = ATOMIC_INIT(READER_BIAS), \ 25 atomic_set(&(rwbase)->readers, READER_BIAS); \ 31 return atomic_read(&rwb->readers) != READER_BIAS; in rw_base_is_locked() 36 return atomic_read(&rwb->readers) == WRITER_BIAS; in rw_base_is_write_locked() 41 return atomic_read(&rwb->readers) > 0; in rw_base_is_contended()
|
| H A D | rcu_sync.h | 16 /* Structure to mediate between updaters and fastpath-using readers. */ 26 * rcu_sync_is_idle() - Are readers permitted to use their fastpaths? 29 * Returns true if readers are permitted to use their fastpaths. Must be
|
| H A D | seqlock_types.h | 16 * If readers can be invoked from hardirq or softirq contexts, 86 * Make sure that readers don't starve writers on PREEMPT_RT: use
|
| /linux/Documentation/locking/ |
| H A D | lockdep-design.rst | 405 spin_lock() or write_lock()), non-recursive readers (i.e. shared lockers, like 406 down_read()) and recursive readers (recursive shared lockers, like rcu_read_lock()). 410 r: stands for non-recursive readers. 411 R: stands for recursive readers. 412 S: stands for all readers (non-recursive + recursive), as both are shared lockers. 413 N: stands for writers and non-recursive readers, as both are not recursive. 417 Recursive readers, as their name indicates, are the lockers allowed to acquire 421 While non-recursive readers will cause a self deadlock if trying to acquire inside 424 The difference between recursive readers and non-recursive readers is because: 425 recursive readers get blocked only by a write lock *holder*, while non-recursive [all …]
|
| /linux/kernel/rcu/ |
| H A D | sync.c | 42 * If it is called by rcu_sync_enter() it signals that all the readers were 51 * readers back onto their fastpaths (after a grace period). If both 54 * rcu_sync_exit(). Otherwise, set all state back to idle so that readers 91 * rcu_sync_enter() - Force readers onto slowpath 94 * This function is used by updaters who need readers to make use of 97 * tells readers to stay off their fastpaths. A later call to 143 * rcu_sync_exit() - Allow readers back onto fast path after grace period 147 * now allow readers to make use of their fastpaths after a grace period 149 * calls to rcu_sync_is_idle() will return true, which tells readers that
|
| H A D | srcutree.c | 432 * Computes approximate total of the readers' ->srcu_ctrs[].srcu_locks 458 * Returns approximate total of the readers' ->srcu_ctrs[].srcu_unlocks 480 * Return true if the number of pre-existing readers is determined to 512 * been no readers on this index at some point in this function. in srcu_readers_active_idx_check() 513 * But there might be more readers, as a task might have read in srcu_readers_active_idx_check() 571 * srcu_readers_active - returns true if there are readers. and false 573 * @ssp: which srcu_struct to count active readers (holding srcu_read_lock). 598 * (defined below, boot time configurable) to allow SRCU readers to exit 599 * their read-side critical sections. If there are still some readers 610 #define SRCU_MAX_INTERVAL 10 // Maximum incremental delay from slow readers [all...] |
| H A D | refscale.c | 87 // Number of loops per experiment, all readers execute operations concurrently. 89 // Number of readers, with -1 defaulting to about 75% of the CPUs. 90 torture_param(int, nreaders, -1, "Number of readers, -1 for 75% of CPUs."); 121 // Number of readers that are part of the current experiment. 252 // These definitions also work for RCU Rude readers. 947 VERBOSE_SCALEOUT_BATCH("ref_scale_reader %ld: experiment %d ended, (readers remaining=%d)", in ref_scale_reader() 1008 // experiments. For every experiment, it orders all the readers 1038 // Start exp readers up per experiment in main_func() 1057 VERBOSE_SCALEOUT("main_func: experiment started, waiting for %d readers", in main_func()
|
| /linux/Documentation/RCU/ |
| H A D | rcu.rst | 10 must be long enough that any readers accessing the item being deleted have 21 The advantage of RCU's two-part approach is that RCU readers need 26 in read-mostly situations. The fact that RCU readers need not 30 if the RCU readers give no indication when they are done? 32 Just as with spinlocks, RCU readers are not permitted to 42 same effect, but require that the readers manipulate CPU-local
|
| /linux/fs/btrfs/ |
| H A D | locking.c | 124 * - try-lock semantics for readers and writers 310 * if there are pending readers no new writers would be allowed to come in and 316 atomic_set(&lock->readers, 0); in btrfs_drew_lock_init() 325 if (atomic_read(&lock->readers)) in btrfs_drew_try_write_lock() 330 /* Ensure writers count is updated before we check for pending readers */ in btrfs_drew_try_write_lock() 332 if (atomic_read(&lock->readers)) { in btrfs_drew_try_write_lock() 345 wait_event(lock->pending_writers, !atomic_read(&lock->readers)); in btrfs_drew_write_lock() 352 * atomic_dec_and_test() implies a full barrier, so woken up readers are in btrfs_drew_write_unlock() 361 atomic_inc(&lock->readers); in btrfs_drew_read_lock() 380 if (atomic_dec_and_test(&lock->readers)) in btrfs_drew_read_unlock()
|
| H A D | locking.h | 101 * the threads that hold the lock as readers signal the condition for the wait 118 * the condition and do the signaling acquire the lock as readers (shared 224 atomic_t readers; member
|
| /linux/drivers/misc/ibmasm/ |
| H A D | event.c | 30 list_for_each_entry(reader, &sp->event_buffer->readers, node) in wake_up_event_readers() 39 * event readers. 40 * There is no reader marker in the buffer, therefore readers are 73 * Called by event readers (initiated from user space through the file 123 list_add(&reader->node, &sp->event_buffer->readers); in ibmasm_event_reader_register() 153 INIT_LIST_HEAD(&buffer->readers); in ibmasm_event_buffer_init()
|
| /linux/kernel/locking/ |
| H A D | rwsem.c | 39 * - Bit 0: RWSEM_READER_OWNED - rwsem may be owned by readers (just a hint) 56 * is involved. Ideally we would like to track all the readers that own 110 * 1) rwsem_mark_wake() for readers -- set, clear 295 * The lock is owned by readers when 300 * Having some reader bits set is not enough to guarantee a readers owned 301 * lock as the readers may be in the process of backing out from the count 349 RWSEM_WAKE_READERS, /* Wake readers only */ 361 * Magic number to batch-wakeup waiting readers, even when writers are 408 * Implies rwsem_del_waiter() for all woken readers. 432 * Readers, on the other hand, will block as they in rwsem_mark_wake() [all …]
|
| H A D | qrwlock.c | 24 * Readers come here when they cannot get the lock without waiting in queued_read_lock_slowpath() 28 * Readers in interrupt context will get the lock immediately in queued_read_lock_slowpath() 80 /* Set the waiting flag to notify readers that a writer is pending */ in queued_write_lock_slowpath() 83 /* When no more readers or writers, set the locked flag */ in queued_write_lock_slowpath()
|
| /linux/drivers/misc/cardreader/ |
| H A D | Kconfig | 9 Alcor Micro card readers support access to many types of memory cards, 21 Realtek card readers support access to many types of memory cards, 30 Select this option to get support for Realtek USB 2.0 card readers
|
| /linux/drivers/hid/ |
| H A D | hid-roccat.c | 18 * It is inspired by hidraw, but uses only one circular buffer for all readers. 47 struct list_head readers; member 48 /* protects modifications of readers list */ 52 * circular_buffer has one writer and multiple readers with their own 191 list_add_tail(&reader->node, &device->readers); in roccat_open() 239 * roccat_report_event() - output data to readers 270 list_for_each_entry(reader, &device->readers, node) { in roccat_report_event() 339 INIT_LIST_HEAD(&device->readers); in roccat_connect()
|
| /linux/arch/x86/include/asm/ |
| H A D | spinlock.h | 30 * Read-write spinlocks, allowing multiple readers 33 * NOTE! it is quite common to have readers in interrupts 36 * irq-safe write-lock, but readers can get non-irqsafe
|
| /linux/arch/sh/include/asm/ |
| H A D | spinlock-cas.h | 44 * Read-write spinlocks, allowing multiple readers but only one writer. 46 * NOTE! it is quite common to have readers in interrupts but no interrupt 48 * needs to get a irq-safe write-lock, but readers can get non-irqsafe
|
| H A D | spinlock-llsc.h | 82 * Read-write spinlocks, allowing multiple readers but only one writer. 84 * NOTE! it is quite common to have readers in interrupts but no interrupt 86 * needs to get a irq-safe write-lock, but readers can get non-irqsafe
|
| /linux/fs/ |
| H A D | pipe.c | 73 * FIFOs and Pipes now generate SIGIO for both readers and writers. 427 !READ_ONCE(pipe->readers); in pipe_writable() 460 if (!pipe->readers) { in anon_pipe_write() 501 if (!pipe->readers) { in anon_pipe_write() 565 * space. We wake up any readers if necessary, and then in anon_pipe_write() 702 if (!pipe->readers) in pipe_poll() 731 pipe->readers--; in pipe_release() 736 if (!pipe->readers != !pipe->writers) { in pipe_release() 902 pipe->readers = pipe->writers = 1; in get_pipe_inode() 1069 * but that requires that we wake up any other readers/writers [all …]
|
| /linux/tools/testing/selftests/kvm/include/ |
| H A D | userfaultfd_util.h | 29 /* Holds the write ends of the pipes for killing the readers. */ 31 pthread_t *readers; member
|
| /linux/arch/s390/include/asm/ |
| H A D | spinlock.h | 108 * Read-write spinlocks, allowing multiple readers 111 * NOTE! it is quite common to have readers in interrupts 114 * irq-safe write-lock, but readers can get non-irqsafe
|
| /linux/kernel/printk/ |
| H A D | printk_ringbuffer.h | 31 * A structure providing the buffers, used by writers and readers. 38 * Readers: 160 * by readers and writers. The requirements that the descriptor array 168 * Readers must see that the ringbuffer is initially empty. 178 * reusable state. Readers recognize reusable descriptors as existing 206 * prb_first_seq() can be called at any time by readers to retrieve the
|
| /linux/arch/arc/include/asm/ |
| H A D | spinlock.h | 75 * Read-write spinlocks, allowing multiple readers but only one writer. 142 * (can be starved for an indefinite time by readers). in arch_write_lock() 290 * Read-write spinlocks, allowing multiple readers but only one writer. 334 * (can be starved for an indefinite time by readers). in arch_write_trylock()
|
| /linux/arch/powerpc/include/asm/ |
| H A D | simple_spinlock.h | 137 * Read-write spinlocks, allowing multiple readers 140 * NOTE! it is quite common to have readers in interrupts 143 * irq-safe write-lock, but readers can get non-irqsafe
|
| /linux/Documentation/trace/ |
| H A D | ring-buffer-map.rst | 43 Concurrent readers (either another application mapping that ring-buffer or the 45 the ring-buffer and the output is unpredictable, just like concurrent readers on
|