Home
last modified time | relevance | path

Searched refs:rtmutex (Results 1 – 14 of 14) sorted by relevance

/Linux-v5.15/kernel/locking/
Drwbase_rt.c72 struct rt_mutex_base *rtm = &rwb->rtmutex; in __rwbase_read_lock()
149 struct rt_mutex_base *rtm = &rwb->rtmutex; in __rwbase_read_unlock()
182 struct rt_mutex_base *rtm = &rwb->rtmutex; in __rwbase_write_unlock()
195 struct rt_mutex_base *rtm = &rwb->rtmutex; in rwbase_write_unlock()
204 struct rt_mutex_base *rtm = &rwb->rtmutex; in rwbase_write_downgrade()
215 lockdep_assert_held(&rwb->rtmutex.wait_lock); in __rwbase_write_trylock()
232 struct rt_mutex_base *rtm = &rwb->rtmutex; in rwbase_write_lock()
273 struct rt_mutex_base *rtm = &rwb->rtmutex; in rwbase_write_trylock()
Drtmutex_api.c30 ret = __rt_mutex_lock(&lock->rtmutex, state); in __rt_mutex_lock_common()
103 ret = __rt_mutex_trylock(&lock->rtmutex); in rt_mutex_trylock()
119 __rt_mutex_unlock(&lock->rtmutex); in rt_mutex_unlock()
195 __rt_mutex_base_init(&lock->rtmutex); in __rt_mutex_init()
490 ret = __rt_mutex_lock(&lock->rtmutex, state); in __mutex_lock_common()
575 ret = __rt_mutex_trylock(&lock->rtmutex); in mutex_trylock()
586 __rt_mutex_unlock(&lock->rtmutex); in mutex_unlock()
Dww_mutex.h96 struct rb_node *n = rb_first(&lock->rtmutex.waiters.rb_root); in __ww_waiter_first()
123 struct rb_node *n = rb_last(&lock->rtmutex.waiters.rb_root); in __ww_waiter_last()
138 return rt_mutex_owner(&lock->rtmutex); in __ww_mutex_owner()
144 return rt_mutex_has_waiters(&lock->rtmutex); in __ww_mutex_has_waiters()
149 raw_spin_lock(&lock->rtmutex.wait_lock); in lock_wait_lock()
154 raw_spin_unlock(&lock->rtmutex.wait_lock); in unlock_wait_lock()
159 lockdep_assert_held(&lock->rtmutex.wait_lock); in lockdep_assert_wait_lock_held()
Dww_rt_mutex.c40 if (likely(rt_mutex_cmpxchg_acquire(&rtm->rtmutex, NULL, current))) { in __ww_rt_mutex_lock()
46 ret = rt_mutex_slowlock(&rtm->rtmutex, ww_ctx, state); in __ww_rt_mutex_lock()
74 __rt_mutex_unlock(&rtm->rtmutex); in ww_mutex_unlock()
Drtmutex.c1121 rtm = container_of(lock, struct rt_mutex, rtmutex); in task_blocks_on_rt_mutex()
1478 struct rt_mutex *rtm = container_of(lock, struct rt_mutex, rtmutex); in rt_mutex_slowlock_block()
1556 struct rt_mutex *rtm = container_of(lock, struct rt_mutex, rtmutex); in __rt_mutex_slowlock()
/Linux-v5.15/include/linux/
Drwbase_rt.h13 struct rt_mutex_base rtmutex; member
19 .rtmutex = __RT_MUTEX_BASE_INITIALIZER(name.rtmutex), \
24 rt_mutex_base_init(&(rwbase)->rtmutex); \
Dmutex.h136 struct rt_mutex_base rtmutex; member
144 .rtmutex = __RT_MUTEX_BASE_INITIALIZER(mutexname.rtmutex) \
157 #define mutex_is_locked(l) rt_mutex_base_is_locked(&(l)->rtmutex)
161 rt_mutex_base_init(&(mutex)->rtmutex); \
Drtmutex.h58 struct rt_mutex_base rtmutex; member
91 .rtmutex = __RT_MUTEX_BASE_INITIALIZER(mutexname.rtmutex), \
Dww_mutex.h37 #define ww_mutex_base_is_locked(b) rt_mutex_base_is_locked(&(b)->rtmutex)
/Linux-v5.15/lib/
Dtest_lockup.c488 offsetof(rwlock_t, rwbase.rtmutex.wait_lock.magic), in test_lockup_init()
491 offsetof(struct mutex, rtmutex.wait_lock.magic), in test_lockup_init()
494 offsetof(struct rw_semaphore, rwbase.rtmutex.wait_lock.magic), in test_lockup_init()
/Linux-v5.15/Documentation/locking/
Drt-mutex.rst32 The enqueueing of the waiters into the rtmutex waiter tree is done in
34 rtmutex, only the top priority waiter is enqueued into the owner's
Drt-mutex-design.rst10 This document tries to describe the design of the rtmutex.c implementation.
11 It doesn't describe the reasons why rtmutex.c exists. For that please see
307 not true, the rtmutex.c code will be broken!), this allows for the least
349 The implementation of the PI code in rtmutex.c has several places that a
414 rtmutex.c. See the 'Chain walk basics and protection scope' comment for further
Dlocktypes.rst98 rtmutex chapter
/Linux-v5.15/kernel/rcu/
Dtree_plugin.h532 drop_boost_mutex = rt_mutex_owner(&rnp->boost_mtx.rtmutex) == t; in rcu_preempt_deferred_qs_irqrestore()
559 rt_mutex_futex_unlock(&rnp->boost_mtx.rtmutex); in rcu_preempt_deferred_qs_irqrestore()
1056 rt_mutex_init_proxy_locked(&rnp->boost_mtx.rtmutex, t); in rcu_boost()