Lines Matching full:reader

39  *  - Bit 1: RWSEM_NONSPINNABLE - Cannot spin on a reader-owned lock
41 * When the rwsem is reader-owned and a spinning writer has timed out,
47 * When a reader acquires a rwsem, it will also puts its task_struct
50 * for a free or reader-owned rwsem, the owner value may contain
51 * information about the last reader that acquires the rwsem.
54 * seems to hang on a reader owned rwsem especially if only one reader
58 * A fast path reader optimistic lock stealing is supported when the rwsem
88 * Bits 8-62 - 55-bit reader count
97 * Bits 8-30 - 23-bit reader count
102 * just in case we need to use up more of the reader bits for other purpose
105 * atomic_long_fetch_add() is used to obtain reader lock, whereas
161 * The task_struct pointer of the last owning reader will be left in
168 * The reader non-spinnable bit is preserved.
195 * Return true if the rwsem is owned by a reader.
211 * is a task pointer in owner of a reader-owned rwsem, it will be the
296 * (2) some of the reader bits are set in count, and
299 * Having some reader bits set is not enough to guarantee a readers owned
442 * No reader wakeup if there are too many of them already. in rwsem_mark_wake()
448 * Writers might steal the lock before we grant it to the next reader. in rwsem_mark_wake()
449 * We prefer to do the first reader grant before counting readers in rwsem_mark_wake()
475 * Set it to reader-owned to give spinners an early in rwsem_mark_wake()
477 * The reader nonspinnable bit seen at slowpath entry of in rwsem_mark_wake()
478 * the reader is copied over. in rwsem_mark_wake()
491 * reader phase (first waiter is a reader), all readers are eligible in rwsem_mark_wake()
497 * the reader count may be decremented before it is incremented. It in rwsem_mark_wake()
500 * do an unlock before the reader count increment. in rwsem_mark_wake()
503 * fully increment the reader count in rwsem. in rwsem_mark_wake()
536 * When we've woken a reader, we no longer need to force in rwsem_mark_wake()
554 * Ensure calling get_task_struct() before setting the reader in rwsem_mark_wake()
562 * after setting the reader waiter to nil. in rwsem_mark_wake()
570 * This function is called from the out_nolock path of both the reader and
671 * OWNER_READER: when owner changes and the new owner may be a reader.
793 * Calculate reader-owned rwsem spinning threshold for writer
850 * Time-based reader-owned rwsem optimistic spinning in rwsem_optimistic_spin()
855 * the owner state changes from non-reader to reader. in rwsem_optimistic_spin()
857 * 2 reader phases and have the threshold reset at in rwsem_optimistic_spin()
858 * the beginning of the 2nd reader phase. in rwsem_optimistic_spin()
937 * only be called when the reader count reaches 0.
968 * reader-owned, wake up read lock waiters in queue front or wake up any
971 * This is being called from both reader and writer slow paths.
1011 * Reader optimistic lock stealing. in rwsem_down_read_slowpath()
1019 * the first reader. in rwsem_down_read_slowpath()
1042 * by a writer, this reader can exit the slowpath and return in rwsem_down_read_slowpath()
1681 * The owner value for a reader-owned lock is mostly for debugging in down_read_non_owner()