Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\locking\rtmutex.c Create Date:2022-07-28 09:52:18
Last Modify:2020-03-17 14:26:38 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__rt_mutex_slowlock() - Perform the wait-wake-try-to-take loop*@lock: the rt_mutex to take*@state: the state the task should block in (TASK_INTERRUPTIBLE* or TASK_UNINTERRUPTIBLE)*@timeout: the pre-initialized and started timer, or NULL for none*@waiter:

Proto:static int __sched __rt_mutex_slowlock(struct rt_mutex *lock, int state, struct hrtimer_sleeper *timeout, struct rt_mutex_waiter *waiter)

Type:int

Parameter:

TypeParameterName
struct rt_mutex *lock
intstate
struct hrtimer_sleeper *timeout
struct rt_mutex_waiter *waiter
1171  ret = 0
1173  cycle
1175  If Try to take an rt-mutex* Must be called with lock->wait_lock held and interrupts disabled*@lock: The lock to be acquired Then Break
1186  If timeout && Not task Then ret = -ETIMEDOUT
1188  If ret Then Break
1192  raw_spin_unlock_irq( & wait_lock)
1194  debug_rt_mutex_print_deadlock(waiter)
1196  schedule()
1198  raw_spin_lock_irq( & wait_lock)
1199  set_current_state(state)
1202  set_current_state() includes a barrier so that the write of current->state* is correctly serialised wrt the caller's subsequent test of whether to* actually sleep:* for (;;) {* set_current_state(TASK_UNINTERRUPTIBLE);* if (!need_sleep)* break;* (Used in tsk->state: )
1203  Return ret
Caller
NameDescribe
rt_mutex_slowlockSlow path lock function:
rt_mutex_wait_proxy_lock_mutex_wait_proxy_lock() - Wait for lock acquisition*@lock: the rt_mutex we were woken on*@to: the timeout, null if none