rnu*_*nes 1 linux-device-driver linux-kernel user-mode-linux
我正在制作一个仿真驱动程序,要求我schedule()
在ATOMIC上下文中调用以使仿真部分工作.现在我有这个hack,允许我schedule()
在ATOMIC(例如自旋锁)上下文中调用:
int p_count = current_thread_info()->preempt_count;
current_thread_info()->preempt_count = 0;
schedule();
current_thread_info()->preempt_count = p_count;
Run Code Online (Sandbox Code Playgroud)
但是这在IRQ中不起作用,系统只是停止调用schedule()
.
有没有办法以某种方式破解内核以允许我这样做?我正在使用Linux内核4.2.1和用户模式Linux