函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\locking\rtmutex.c Create Date:2022-07-27 10:52:46
Last Modify:2020-03-17 14:26:38 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__rt_mutex_start_proxy_lock() - Start lock acquisition for another task*@lock: the rt_mutex to take*@waiter: the pre-initialized rt_mutex_waiter*@task: the task to prepare* Starts the rt_mutex acquire; it enqueues the @waiter and does deadlock* detection

函数原型:int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, struct task_struct *task)

返回类型:int

参数:

类型参数名称
struct rt_mutex *lock
struct rt_mutex_waiter *waiter
struct task_struct *task
1753  lockdep_assert_held( & 保护自旋锁)
1755  如果Try to take an rt-mutex* Must be called with lock->wait_lock held and interrupts disabled*@lock: The lock to be acquired则返回:1
1759  ret等于Task blocks on lock.* Prepare waiter and propagate pi chain* This must be called with lock->wait_lock held and interrupts disabled
1762  如果ret且非rt_mutex_owner(lock)则
1769  ret等于0
1772  debug_rt_mutex_print_deadlock(waiter)
1774  返回:ret
调用者
名称描述
rt_mutex_start_proxy_lock_mutex_start_proxy_lock() - Start lock acquisition for another task*@lock: the rt_mutex to take*@waiter: the pre-initialized rt_mutex_waiter*@task: the task to prepare* Starts the rt_mutex acquire; it enqueues the @waiter and does deadlock* detection
futex_lock_piUserspace tried a 0 -> TID atomic transition of the futex value* and failed. The kernel side here does the whole locking operation:* if there are waiters then it will block as a consequence of relying* on rt-mutexes, it does PI, etc