Lines Matching full:readers
38 * - Bit 0: RWSEM_READER_OWNED - rwsem may be owned by readers (just a hint)
55 * is involved. Ideally we would like to track all the readers that own
109 * 1) rwsem_mark_wake() for readers -- set, clear
294 * The lock is owned by readers when
299 * Having some reader bits set is not enough to guarantee a readers owned
300 * lock as the readers may be in the process of backing out from the count
348 RWSEM_WAKE_READERS, /* Wake readers only */
360 * Magic number to batch-wakeup waiting readers, even when writers are
407 * Implies rwsem_del_waiter() for all woken readers.
431 * Readers, on the other hand, will block as they in rwsem_mark_wake()
449 * We prefer to do the first reader grant before counting readers in rwsem_mark_wake()
476 * indication that readers now have the lock. in rwsem_mark_wake()
485 * Grant up to MAX_READERS_WAKEUP read locks to all the readers in the in rwsem_mark_wake()
488 * number of readers before waking any processes up. in rwsem_mark_wake()
491 * reader phase (first waiter is a reader), all readers are eligible in rwsem_mark_wake()
516 * Limit # of readers that can be woken up per wakeup call. in rwsem_mark_wake()
795 * The more readers own the rwsem, the longer it will take for them to
801 * The limit is capped to a maximum of 25us (30 readers). This is just
807 int readers = count >> RWSEM_READER_SHIFT; in rwsem_rspin_threshold() local
810 if (readers > 30) in rwsem_rspin_threshold()
811 readers = 30; in rwsem_rspin_threshold()
812 delta = (20 + readers) * NSEC_PER_USEC / 2; in rwsem_rspin_threshold()
832 * 2) readers own the lock and spinning time has exceeded limit. in rwsem_optimistic_spin()
1002 * To prevent a constant stream of readers from starving a sleeping in rwsem_down_read_slowpath()
1004 * very likely owned by readers. in rwsem_down_read_slowpath()
1018 * Wake up other readers in the wait queue if it is in rwsem_down_read_slowpath()
1135 * when a large number of readers are to be woken up. in rwsem_down_write_slowpath()
1220 * - just wake up any readers at the front of the queue
1511 int count = atomic_read(&sem->rwbase.readers); in is_rwsem_reader_owned()