Function report |
Source Code:kernel\locking\rtmutex.c |
Create Date:2022-07-28 09:52:16 |
| Last Modify:2020-03-17 14:26:38 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Remove a waiter from a lock and give up* Must be called with lock->wait_lock held and interrupts disabled. I must* have just failed to try_to_take_rt_mutex().
Proto:static void remove_waiter(struct rt_mutex *lock, struct rt_mutex_waiter *waiter)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct rt_mutex * | lock | |
| struct rt_mutex_waiter * | waiter |
| 1070 | is_top_waiter = waiter == rt_mutex_top_waiter(lock) |
| 1071 | owner = rt_mutex_owner(lock) |
| 1074 | lockdep_assert_held( & wait_lock) |
| 1076 | raw_spin_lock( & pi_lock) |
| 1077 | rt_mutex_dequeue(lock, waiter) |
| 1078 | pi_blocked_on = NULL |
| 1079 | raw_spin_unlock( & pi_lock) |
| 1085 | If Not owner || Not is_top_waiter Then Return |
| 1090 | rt_mutex_dequeue_pi(owner, waiter) |
| 1092 | If rt_mutex_has_waiters(lock) Then rt_mutex_enqueue_pi(owner, rt_mutex_top_waiter(lock)) |
| 1095 | rt_mutex_adjust_prio(owner) |
| 1098 | next_lock = task_blocked_on_lock(owner) |
| 1106 | If Not next_lock Then Return |
| 1110 | get_task_struct(owner) |
| 1112 | raw_spin_unlock_irq( & wait_lock) |
| 1117 | raw_spin_lock_irq( & wait_lock) |
| Name | Describe |
|---|---|
| rt_mutex_slowlock | Slow path lock function: |
| 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 |
| rt_mutex_cleanup_proxy_lock | _mutex_cleanup_proxy_lock() - Cleanup failed lock acquisition*@lock: the rt_mutex we were woken on*@waiter: the pre-initialized rt_mutex_waiter* Attempt to clean up after a failed __rt_mutex_start_proxy_lock() or* rt_mutex_wait_proxy_lock() |
| 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 |