| 函数逻辑报告 | 
| 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 插件可实现:逻辑报告 代码生成和批量转换代码 |