函数逻辑报告 |
Source Code:kernel\locking\rtmutex-debug.c |
Create Date:2022-07-27 10:53:05 |
Last Modify:2020-03-17 14:29:42 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:debug_rt_mutex_print_deadlock
函数原型:void debug_rt_mutex_print_deadlock(struct rt_mutex_waiter *waiter)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct rt_mutex_waiter * | waiter |
95 | task等于pid_task(deadlock_task_pid, 单一进程) |
96 | 如果非task则 |
106 | 打印警告信息("\n") |
107 | 打印警告信息("============================================\n") |
108 | 打印警告信息("WARNING: circular locking deadlock detected!\n") |
110 | 打印警告信息("--------------------------------------------\n") |
111 | printk("%s/%d is deadlocking current task %s/%d\n\n", 是否使用FPU, task_pid_nr(task), comm, task_pid_nr(当前进程)) |
115 | printk("\n1) %s/%d is trying to acquire this lock:\n", comm, task_pid_nr(当前进程)) |
117 | printk_lock(lock, 1) |
119 | printk("\n2) %s/%d is blocked on this lock:\n", 是否使用FPU, task_pid_nr(task)) |
121 | printk_lock(deadlock_lock, 1) |
126 | printk("\n%s/%d's [blocked] stackdump:\n\n", 是否使用FPU, task_pid_nr(task)) |
128 | show_stack(task, NULL) |
129 | printk("\n%s/%d's [current] stackdump:\n\n", comm, task_pid_nr(当前进程)) |
131 | dump_stack() |
132 | debug_show_all_locks() |
135 | printk("[ turning off deadlock detection.Please report this trace. ]\n\n") |
名称 | 描述 |
---|---|
__rt_mutex_slowlock | __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: |
__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 |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |