• Home
  • Raw
  • Download

Lines Matching refs:sem

25 		struct percpu_rw_semaphore *sem, unsigned long settime);
51 static inline void percpu_down_read(struct percpu_rw_semaphore *sem) in percpu_down_read() argument
55 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in percpu_down_read()
66 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read()
67 this_cpu_inc(*sem->read_count); in percpu_down_read()
69 __percpu_down_read(sem, false); /* Unconditional memory barrier */ in percpu_down_read()
74 _trace_android_vh_record_pcpu_rwsem_starttime(sem, jiffies); in percpu_down_read()
78 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
86 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read_trylock()
87 this_cpu_inc(*sem->read_count); in percpu_down_read_trylock()
89 ret = __percpu_down_read(sem, true); /* Unconditional memory barrier */ in percpu_down_read_trylock()
97 _trace_android_vh_record_pcpu_rwsem_starttime(sem, jiffies); in percpu_down_read_trylock()
98 rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); in percpu_down_read_trylock()
104 static inline void percpu_up_read(struct percpu_rw_semaphore *sem) in percpu_up_read() argument
106 rwsem_release(&sem->dep_map, _RET_IP_); in percpu_up_read()
112 if (likely(rcu_sync_is_idle(&sem->rss))) { in percpu_up_read()
113 this_cpu_dec(*sem->read_count); in percpu_up_read()
125 this_cpu_dec(*sem->read_count); in percpu_up_read()
126 rcuwait_wake_up(&sem->writer); in percpu_up_read()
128 _trace_android_vh_record_pcpu_rwsem_starttime(sem, 0); in percpu_up_read()
136 static inline bool percpu_is_write_locked(struct percpu_rw_semaphore *sem) in percpu_is_write_locked() argument
138 return atomic_read(&sem->block); in percpu_is_write_locked()
146 #define percpu_init_rwsem(sem) \ argument
149 __percpu_init_rwsem(sem, #sem, &rwsem_key); \
152 #define percpu_rwsem_is_held(sem) lockdep_is_held(sem) argument
153 #define percpu_rwsem_assert_held(sem) lockdep_assert_held(sem) argument
155 static inline void percpu_rwsem_release(struct percpu_rw_semaphore *sem, in percpu_rwsem_release() argument
158 lock_release(&sem->dep_map, ip); in percpu_rwsem_release()
161 static inline void percpu_rwsem_acquire(struct percpu_rw_semaphore *sem, in percpu_rwsem_acquire() argument
164 lock_acquire(&sem->dep_map, 0, 1, read, 1, NULL, ip); in percpu_rwsem_acquire()