Home
last modified time | relevance | path

Searched refs:sem (Results 1 – 25 of 148) sorted by relevance

123456

/linux/kernel/locking/
H A Drwsem.c69 # define DEBUG_RWSEMS_WARN_ON(c, sem) do { \ argument
72 #c, atomic_long_read(&(sem)->count), \
73 (unsigned long) sem->magic, \
74 atomic_long_read(&(sem)->owner), (long)current, \
75 list_empty(&(sem)->wait_list) ? "" : "not ")) \
79 # define DEBUG_RWSEMS_WARN_ON(c, sem) argument
141 static inline void rwsem_set_owner(struct rw_semaphore *sem) in rwsem_set_owner() argument
144 atomic_long_set(&sem->owner, (long)current); in rwsem_set_owner()
147 static inline void rwsem_clear_owner(struct rw_semaphore *sem) in rwsem_clear_owner() argument
150 atomic_long_set(&sem->owner, 0); in rwsem_clear_owner()
[all …]
H A Dsemaphore.c39 static noinline void __down(struct semaphore *sem);
40 static noinline int __down_interruptible(struct semaphore *sem);
41 static noinline int __down_killable(struct semaphore *sem);
42 static noinline int __down_timeout(struct semaphore *sem, long timeout);
43 static noinline void __up(struct semaphore *sem, struct wake_q_head *wake_q);
46 static inline void hung_task_sem_set_holder(struct semaphore *sem) in hung_task_sem_set_holder() argument
48 WRITE_ONCE((sem)->last_holder, (unsigned long)current); in hung_task_sem_set_holder()
51 static inline void hung_task_sem_clear_if_holder(struct semaphore *sem) in hung_task_sem_clear_if_holder() argument
53 if (READ_ONCE((sem)->last_holder) == (unsigned long)current) in hung_task_sem_clear_if_holder()
54 WRITE_ONCE((sem)->last_holder, 0UL); in hung_task_sem_clear_if_holder()
[all …]
H A Dpercpu-rwsem.c14 int __percpu_init_rwsem(struct percpu_rw_semaphore *sem, in __percpu_init_rwsem() argument
17 sem->read_count = alloc_percpu(int); in __percpu_init_rwsem()
18 if (unlikely(!sem->read_count)) in __percpu_init_rwsem()
21 rcu_sync_init(&sem->rss); in __percpu_init_rwsem()
22 rcuwait_init(&sem->writer); in __percpu_init_rwsem()
23 init_waitqueue_head(&sem->waiters); in __percpu_init_rwsem()
24 atomic_set(&sem->block, 0); in __percpu_init_rwsem()
26 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __percpu_init_rwsem()
27 lockdep_init_map(&sem->dep_map, name, key, 0); in __percpu_init_rwsem()
33 void percpu_free_rwsem(struct percpu_rw_semaphore *sem) in percpu_free_rwsem() argument
[all …]
/linux/drivers/tty/
H A Dtty_ldsem.c57 void __init_ldsem(struct ld_semaphore *sem, const char *name, in __init_ldsem() argument
64 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __init_ldsem()
65 lockdep_init_map(&sem->dep_map, name, key, 0); in __init_ldsem()
67 atomic_long_set(&sem->count, LDSEM_UNLOCKED); in __init_ldsem()
68 sem->wait_readers = 0; in __init_ldsem()
69 raw_spin_lock_init(&sem->wait_lock); in __init_ldsem()
70 INIT_LIST_HEAD(&sem->read_wait); in __init_ldsem()
71 INIT_LIST_HEAD(&sem->write_wait); in __init_ldsem()
74 static void __ldsem_wake_readers(struct ld_semaphore *sem) in __ldsem_wake_readers() argument
85 adjust = sem->wait_readers * (LDSEM_ACTIVE_BIAS - LDSEM_WAIT_BIAS); in __ldsem_wake_readers()
[all …]
/linux/include/linux/
H A Drwsem.h73 static inline int rwsem_is_locked(struct rw_semaphore *sem) in rwsem_is_locked() argument
75 return atomic_long_read(&sem->count) != RWSEM_UNLOCKED_VALUE; in rwsem_is_locked()
78 static inline void rwsem_assert_held_nolockdep(const struct rw_semaphore *sem) in rwsem_assert_held_nolockdep() argument
79 __assumes_ctx_lock(sem) in rwsem_assert_held_nolockdep()
81 WARN_ON(atomic_long_read(&sem->count) == RWSEM_UNLOCKED_VALUE); in rwsem_assert_held_nolockdep()
84 static inline void rwsem_assert_held_write_nolockdep(const struct rw_semaphore *sem) in rwsem_assert_held_write_nolockdep()
85 __assumes_ctx_lock(sem) in rwsem_assert_held_write_nolockdep()
87 WARN_ON(!(atomic_long_read(&sem->count) & RWSEM_WRITER_LOCKED));
116 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
119 #define init_rwsem(sem) \
83 rwsem_assert_held_write_nolockdep(const struct rw_semaphore * sem) rwsem_assert_held_write_nolockdep() argument
117 init_rwsem(sem) global() argument
130 rwsem_is_contended(struct rw_semaphore * sem) rwsem_is_contended() argument
170 init_rwsem(sem) global() argument
177 rwsem_is_locked(const struct rw_semaphore * sem) rwsem_is_locked() argument
182 rwsem_assert_held_nolockdep(const struct rw_semaphore * sem) rwsem_assert_held_nolockdep() argument
187 rwsem_assert_held_write_nolockdep(const struct rw_semaphore * sem) rwsem_assert_held_write_nolockdep() argument
192 rwsem_is_contended(struct rw_semaphore * sem) rwsem_is_contended() argument
204 rwsem_assert_held(const struct rw_semaphore * sem) rwsem_assert_held() argument
212 rwsem_assert_held_write(const struct rw_semaphore * sem) rwsem_assert_held_write() argument
286 down_write_nest_lock(sem,nest_lock) global() argument
301 down_read_nested(sem,subclass) global() argument
302 down_read_killable_nested(sem,subclass) global() argument
303 down_write_nest_lock(sem,nest_lock) global() argument
304 down_write_nested(sem,subclass) global() argument
305 down_write_killable_nested(sem,subclass) global() argument
306 down_read_non_owner(sem) global() argument
307 up_read_non_owner(sem) global() argument
[all...]
H A Dpercpu-rwsem.h48 static inline void percpu_down_read_internal(struct percpu_rw_semaphore *sem, in percpu_down_read_internal() argument
53 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in percpu_down_read_internal()
64 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read_internal()
65 this_cpu_inc(*sem->read_count); in percpu_down_read_internal()
67 __percpu_down_read(sem, false, freezable); /* Unconditional memory barrier */ in percpu_down_read_internal()
75 static inline void percpu_down_read(struct percpu_rw_semaphore *sem) in percpu_down_read() argument
77 percpu_down_read_internal(sem, false); in percpu_down_read()
80 static inline void percpu_down_read_freezable(struct percpu_rw_semaphore *sem, in percpu_down_read_freezable() argument
83 percpu_down_read_internal(sem, freeze); in percpu_down_read_freezable()
86 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
[all …]
H A Dtty_ldisc.h28 void __init_ldsem(struct ld_semaphore *sem, const char *name,
31 #define init_ldsem(sem) \ argument
35 __init_ldsem((sem), #sem, &__key); \
39 int ldsem_down_read(struct ld_semaphore *sem, long timeout);
40 int ldsem_down_read_trylock(struct ld_semaphore *sem);
41 int ldsem_down_write(struct ld_semaphore *sem, long timeout);
42 void ldsem_up_read(struct ld_semaphore *sem);
43 void ldsem_up_write(struct ld_semaphore *sem);
46 int ldsem_down_read_nested(struct ld_semaphore *sem, int subclass,
48 int ldsem_down_write_nested(struct ld_semaphore *sem, int subclass,
[all …]
H A Dsemaphore.h49 static inline void sema_init(struct semaphore *sem, int val) in sema_init() argument
52 *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val); in sema_init()
53 lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); in sema_init()
56 extern void down(struct semaphore *sem);
57 extern int __must_check down_interruptible(struct semaphore *sem);
58 extern int __must_check down_killable(struct semaphore *sem);
59 extern int __must_check down_trylock(struct semaphore *sem);
60 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
61 extern void up(struct semaphore *sem);
62 extern unsigned long sem_last_holder(struct semaphore *sem);
/linux/tools/perf/util/
H A Drwsem.c9 int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument
12 mutex_init(&sem->mtx); in init_rwsem()
15 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem()
19 int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument
22 mutex_destroy(&sem->mtx); in exit_rwsem()
25 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem()
29 int down_read(struct rw_semaphore *sem) in down_read() argument
33 mutex_lock(&sem->mtx); in down_read()
36 return perf_singlethreaded ? 0 : pthread_rwlock_rdlock(&sem->lock); in down_read()
40 int up_read(struct rw_semaphore *sem) in up_read() argument
[all …]
H A Drwsem.h21 int init_rwsem(struct rw_semaphore *sem);
22 int exit_rwsem(struct rw_semaphore *sem);
24 int down_read(struct rw_semaphore *sem) SHARED_LOCK_FUNCTION(sem);
25 int up_read(struct rw_semaphore *sem) UNLOCK_FUNCTION(sem);
27 int down_write(struct rw_semaphore *sem) EXCLUSIVE_LOCK_FUNCTION(sem);
28 int up_write(struct rw_semaphore *sem) UNLOCK_FUNCTION(sem);
/linux/tools/include/linux/
H A Drwsem.h11 static inline int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument
13 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem()
16 static inline int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument
18 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem()
21 static inline int down_read(struct rw_semaphore *sem) in down_read() argument
23 return pthread_rwlock_rdlock(&sem->lock); in down_read()
26 static inline int up_read(struct rw_semaphore *sem) in up_read() argument
28 return pthread_rwlock_unlock(&sem->lock); in up_read()
31 static inline int down_write(struct rw_semaphore *sem) in down_write() argument
33 return pthread_rwlock_wrlock(&sem->lock); in down_write()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/lib/
H A Ddevcom.c40 struct rw_semaphore sem; member
133 init_rwsem(&comp->sem); in mlx5_devcom_comp_alloc()
135 lockdep_set_class(&comp->sem, &comp->lock_key); in mlx5_devcom_comp_alloc()
170 down_write(&comp->sem); in devcom_alloc_comp_dev()
172 up_write(&comp->sem); in devcom_alloc_comp_dev()
182 down_write(&comp->sem); in devcom_free_comp_dev()
184 up_write(&comp->sem); in devcom_free_comp_dev()
302 down_write(&comp->sem); in mlx5_devcom_send_event()
304 data = rcu_dereference_protected(pos->data, lockdep_is_held(&comp->sem)); in mlx5_devcom_send_event()
313 up_write(&comp->sem); in mlx5_devcom_send_event()
[all …]
/linux/drivers/misc/
H A Dntsync.c59 } sem; member
236 return !!obj->u.sem.count; in is_signaled()
284 obj->u.sem.count--; in try_wake_all()
319 static void try_wake_any_sem(struct ntsync_obj *sem) in try_wake_any_sem() argument
323 ntsync_assert_held(sem); in try_wake_any_sem()
324 lockdep_assert(sem->type == NTSYNC_TYPE_SEM); in try_wake_any_sem()
326 list_for_each_entry(entry, &sem->any_waiters, node) { in try_wake_any_sem()
330 if (!sem->u.sem.count) in try_wake_any_sem()
334 sem->u.sem.count--; in try_wake_any_sem()
393 static int release_sem_state(struct ntsync_obj *sem, __u32 count) in release_sem_state() argument
[all …]
/linux/tools/power/acpi/os_specific/service_layers/
H A Dosunixxf.c630 sem_t *sem; in acpi_os_create_semaphore() local
643 sem = in acpi_os_create_semaphore()
646 if (!sem) { in acpi_os_create_semaphore()
653 sem = acpi_os_allocate(sizeof(sem_t)); in acpi_os_create_semaphore()
654 if (!sem) { in acpi_os_create_semaphore()
658 if (sem_init(sem, 0, initial_units) == -1) { in acpi_os_create_semaphore()
659 acpi_os_free(sem); in acpi_os_create_semaphore()
664 *out_handle = (acpi_handle)sem; in acpi_os_create_semaphore()
682 sem_t *sem = (sem_t *) handle; in acpi_os_delete_semaphore() local
684 if (!sem) { in acpi_os_delete_semaphore()
[all …]
/linux/fs/jffs2/
H A Ddir.c99 mutex_lock(&dir_f->sem); in jffs2_lookup()
112 mutex_unlock(&dir_f->sem); in jffs2_lookup()
137 mutex_lock(&f->sem); in jffs2_readdir()
158 mutex_unlock(&f->sem); in jffs2_readdir()
203 mutex_unlock(&f->sem); in jffs2_create()
274 mutex_lock(&f->sem); in jffs2_link()
276 mutex_unlock(&f->sem); in jffs2_link()
352 mutex_unlock(&f->sem); in jffs2_symlink()
362 mutex_unlock(&f->sem); in jffs2_symlink()
376 mutex_unlock(&f->sem); in jffs2_symlink()
[all …]
H A Dwrite.c145 mutex_unlock(&f->sem); in jffs2_write_dnode()
150 mutex_lock(&f->sem); in jffs2_write_dnode()
297 mutex_unlock(&f->sem); in jffs2_write_dirent()
302 mutex_lock(&f->sem); in jffs2_write_dirent()
368 mutex_lock(&f->sem); in jffs2_write_inode_range()
397 mutex_unlock(&f->sem); in jffs2_write_inode_range()
420 mutex_unlock(&f->sem); in jffs2_write_inode_range()
424 mutex_unlock(&f->sem); in jffs2_write_inode_range()
460 mutex_lock(&f->sem); in jffs2_do_create()
473 mutex_unlock(&f->sem); in jffs2_do_create()
[all …]
/linux/drivers/gpu/drm/gma500/
H A Dmmu.c89 down_write(&driver->sem);
91 up_write(&driver->sem);
101 down_write(&driver->sem); in psb_mmu_flush()
118 up_write(&driver->sem); in psb_mmu_flush()
128 down_write(&pd->driver->sem); in psb_mmu_set_pd_context()
133 up_write(&pd->driver->sem); in psb_mmu_set_pd_context()
238 down_write(&driver->sem); in psb_mmu_free_pagedir()
258 up_write(&driver->sem); in psb_mmu_free_pagedir()
403 down_read(&driver->sem); in psb_mmu_get_default_pd()
405 up_read(&driver->sem); in psb_mmu_get_default_pd()
[all …]
/linux/drivers/gpu/drm/radeon/
H A Dradeon_trace.h170 TP_PROTO(int ring, struct radeon_semaphore *sem),
172 TP_ARGS(ring, sem),
182 __entry->waiters = sem->waiters;
183 __entry->gpu_addr = sem->gpu_addr;
192 TP_PROTO(int ring, struct radeon_semaphore *sem),
194 TP_ARGS(ring, sem)
199 TP_PROTO(int ring, struct radeon_semaphore *sem),
201 TP_ARGS(ring, sem)
/linux/fs/f2fs/
H A Dcheckpoint.c42 static inline void trace_lock_elapsed_time_start(struct f2fs_rwsem *sem, in trace_lock_elapsed_time_start() argument
52 static inline void trace_lock_elapsed_time_end(struct f2fs_rwsem *sem, in trace_lock_elapsed_time_end() argument
66 if (time_to_inject(sem->sbi, FAULT_LOCK_TIMEOUT)) in trace_lock_elapsed_time_end()
72 if (total_time <= sem->sbi->max_lock_elapsed_time) in trace_lock_elapsed_time_end()
88 trace_f2fs_lock_elapsed_time(sem->sbi, sem->name, is_write, current, in trace_lock_elapsed_time_end()
93 static bool need_uplift_priority(struct f2fs_rwsem *sem, bool is_write) in need_uplift_priority() argument
95 if (!(sem->sbi->adjust_lock_priority & BIT(sem->name - 1))) in need_uplift_priority()
98 switch (sem->name) { in need_uplift_priority()
112 f2fs_bug_on(sem->sbi, 1); in need_uplift_priority()
117 static void uplift_priority(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc, in uplift_priority() argument
[all …]
/linux/tools/testing/selftests/drivers/ntsync/
H A Dntsync.c17 static int read_sem_state(int sem, __u32 *count, __u32 *max) in read_sem_state() argument
23 ret = ioctl(sem, NTSYNC_IOC_SEM_READ, &args); in read_sem_state()
29 #define check_sem_state(sem, count, max) \ argument
32 int ret = read_sem_state((sem), &__count, &__max); \
38 static int release_sem(int sem, __u32 *count) in release_sem() argument
40 return ioctl(sem, NTSYNC_IOC_SEM_RELEASE, count); in release_sem()
146 int fd, ret, sem; in TEST() local
155 sem = ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args); in TEST()
156 EXPECT_EQ(-1, sem); in TEST()
161 sem = ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args); in TEST()
[all …]
/linux/drivers/infiniband/core/
H A Dnetlink.c50 struct rw_semaphore sem; member
99 up_read(&rdma_nl_types[type].sem); in get_cb_table()
103 down_read(&rdma_nl_types[type].sem); in get_cb_table()
125 down_write(&rdma_nl_types[index].sem); in rdma_nl_unregister()
127 up_write(&rdma_nl_types[index].sem); in rdma_nl_unregister()
164 down_read(&rdma_nl_types[index].sem); in rdma_nl_rcv_msg()
197 up_read(&rdma_nl_types[index].sem); in rdma_nl_rcv_msg()
296 init_rwsem(&rdma_nl_types[idx].sem); in rdma_nl_init()
/linux/drivers/gpu/drm/amd/ras/ras_mgr/
H A Damdgpu_ras_mp1_v13_0.c44 if (down_read_trylock(&adev->reset_domain->sem)) { in mp1_v13_0_get_valid_bank_count()
46 up_read(&adev->reset_domain->sem); in mp1_v13_0_get_valid_bank_count()
68 if (down_read_trylock(&adev->reset_domain->sem)) { in mp1_v13_0_dump_valid_bank()
79 up_read(&adev->reset_domain->sem); in mp1_v13_0_dump_valid_bank()
/linux/tools/testing/selftests/kvm/
H A Dhardware_disable_test.c24 sem_t *sem; variable
113 sem_post(sem); in run_test()
130 if (!sem_timedwait(sem, &wait_period)) in wait_for_child_setup()
156 sem = sem_open("vm_sem", O_CREAT | O_EXCL, 0644, 0); in main()
178 sem_destroy(sem); in main()
/linux/security/keys/
H A Dkeyring.c1059 down_write(&keyring->sem); in keyring_restrict()
1072 up_write(&keyring->sem); in keyring_restrict()
1241 __acquires(&keyring->sem) in __key_link_lock()
1247 down_write(&keyring->sem); in __key_link_lock()
1263 __acquires(&l_keyring->sem) in __key_move_lock()
1264 __acquires(&u_keyring->sem) in __key_move_lock()
1276 down_write(&l_keyring->sem); in __key_move_lock()
1277 down_write_nested(&u_keyring->sem, 1); in __key_move_lock()
1279 down_write(&u_keyring->sem); in __key_move_lock()
1280 down_write_nested(&l_keyring->sem, 1); in __key_move_lock()
[all …]
/linux/ipc/
H A Dsem.c95 struct sem { struct
126 struct sem sems[]; argument
296 struct sem *curr; in unmerge_queues()
317 struct sem *sem = &sma->sems[i]; in merge_queues() local
319 list_splice_init(&sem->pending_alter, &sma->pending_alter); in merge_queues()
339 struct sem *sem; in complexmode_enter() local
353 sem = &sma->sems[i]; in complexmode_enter()
354 spin_lock(&sem->lock); in complexmode_enter()
355 spin_unlock(&sem->lock); in complexmode_enter()
392 struct sem *sem; in sem_lock() local
[all …]

123456