自旋锁内调用kmalloc或者copy_to_user之类的接口可能造成死锁。
这类函数的实现内有睡眠操作,睡眠时产生了进程调度,新的进程内如果也使用了该自旋锁,就会导致死锁。
这类问题非常普通,但很容易忽略;
屏蔽的方式:
1,使用get_free_page申请内存
2,对资源使用引用计数保护
3,使用互斥锁
时间: 2024-11-14 12:51:15
自旋锁内调用kmalloc或者copy_to_user之类的接口可能造成死锁。
这类函数的实现内有睡眠操作,睡眠时产生了进程调度,新的进程内如果也使用了该自旋锁,就会导致死锁。
这类问题非常普通,但很容易忽略;
屏蔽的方式:
1,使用get_free_page申请内存
2,对资源使用引用计数保护
3,使用互斥锁