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.
185 * Return true if the rwsem is owned by a reader.
204 * is a task pointer in owner of a reader-owned rwsem, it will be the
301 * (2) some of the reader bits are set in count, and
304 * Having some reader bits set is not enough to guarantee a readers owned
447 * No reader wakeup if there are too many of them already. in rwsem_mark_wake()
453 * Writers might steal the lock before we grant it to the next reader. in rwsem_mark_wake()
454 * We prefer to do the first reader grant before counting readers in rwsem_mark_wake()
480 * Set it to reader-owned to give spinners an early in rwsem_mark_wake()
482 * The reader nonspinnable bit seen at slowpath entry of in rwsem_mark_wake()
483 * the reader is copied over. in rwsem_mark_wake()
496 * reader phase (first waiter is a reader), all readers are eligible in rwsem_mark_wake()
502 * the reader count may be decremented before it is incremented. It in rwsem_mark_wake()
505 * do an unlock before the reader count increment. in rwsem_mark_wake()
508 * fully increment the reader count in rwsem. in rwsem_mark_wake()
541 * When we've woken a reader, we no longer need to force in rwsem_mark_wake()
559 * Ensure calling get_task_struct() before setting the reader in rwsem_mark_wake()
567 * after setting the reader waiter to nil. in rwsem_mark_wake()
575 * This function is called from the out_nolock path of both the reader and
677 * OWNER_READER: when owner changes and the new owner may be a reader.
801 * Calculate reader-owned rwsem spinning threshold for writer
860 * Time-based reader-owned rwsem optimistic spinning in rwsem_optimistic_spin()
865 * the owner state changes from non-reader to reader. in rwsem_optimistic_spin()
867 * 2 reader phases and have the threshold reset at in rwsem_optimistic_spin()
868 * the beginning of the 2nd reader phase. in rwsem_optimistic_spin()
948 * only be called when the reader count reaches 0.
979 * reader-owned, wake up read lock waiters in queue front or wake up any
982 * This is being called from both reader and writer slow paths.
1022 * Reader optimistic lock stealing. in rwsem_down_read_slowpath()
1030 * the first reader. in rwsem_down_read_slowpath()
1053 * by a writer, this reader can exit the slowpath and return in rwsem_down_read_slowpath()