Function report |
Source Code:kernel\locking\rtmutex.c |
Create Date:2022-07-28 09:52:12 |
| Last Modify:2020-03-17 14:26:38 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Task blocks on lock.* Prepare waiter and propagate pi chain* This must be called with lock->wait_lock held and interrupts disabled
Proto:static int task_blocks_on_rt_mutex(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, struct task_struct *task, enum rtmutex_chainwalk chwalk)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct rt_mutex * | lock | |
| struct rt_mutex_waiter * | waiter | |
| struct task_struct * | task | |
| enum rtmutex_chainwalk | chwalk |
| 933 | owner = rt_mutex_owner(lock) |
| 934 | top_waiter = waiter |
| 936 | chain_walk = 0 |
| 938 | lockdep_assert_held( & wait_lock) |
| 959 | If rt_mutex_has_waiters(lock) Then top_waiter = rt_mutex_top_waiter(lock) |
| 961 | rt_mutex_enqueue(lock, waiter) |
| 963 | pi_blocked_on = waiter |
| 967 | If Not owner Then Return 0 |
| 971 | If waiter == rt_mutex_top_waiter(lock) Then |
| 973 | rt_mutex_enqueue_pi(owner, waiter) |
| 976 | If pi_blocked_on Then chain_walk = 1 |
| 979 | chain_walk = 1 |
| 983 | next_lock = task_blocked_on_lock(owner) |
| 991 | If Not chain_walk || Not next_lock Then Return 0 |
| 999 | get_task_struct(owner) |
| 1001 | raw_spin_unlock_irq( & wait_lock) |
| 1003 | res = Adjust the priority chain |
| 1006 | raw_spin_lock_irq( & wait_lock) |
| 1008 | Return res |
| Name | Describe |
|---|---|
| rt_mutex_slowlock | Slow path lock function: |
| __rt_mutex_start_proxy_lock | __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 |
| 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 |