| Function report | 
| Source Code: kernel\locking\rtmutex.c | Create Date:2022-07-28 09:52:31 | 
| Last Modify:2020-03-17 14:26:38 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:__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
Proto:int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, struct task_struct *task)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct rt_mutex * | lock | |
| struct rt_mutex_waiter * | waiter | |
| struct task_struct * | task | 
| 1753 | lockdep_assert_held( & wait_lock) | 
| 1755 | 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 Return 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 | If ret && Not rt_mutex_owner(lock) Then | 
| 1769 | ret = 0 | 
| 1774 | Return ret | 
| Name | Describe | 
|---|---|
| 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_pi | Userspace 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 | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |