自旋锁内调用kmalloc或者copy_to_user之类的接口可能造成死锁。
这类函数的实现内有睡眠操作,睡眠时产生了进程调度,新的进程内如果也使用了该自旋锁,就会导致死锁。
这类问题非常普通,但很容易忽略;
屏蔽的方式:
1,使用get_free_page申请内存
2,对资源使用引用计数保护
3,使用互斥锁
posted on 2014-10-21 12:56 Kernel_wu 阅读(770) 评论(0) 编辑 收藏 举报
Powered by: 博客园 Copyright © 2024 Kernel_wu Powered by .NET 9.0 on Kubernetes