我在製作一個仿真驅動程序,要求我在ATOMIC上下文中調用schedule()
以使仿真部分正常工作。現在我有這樣的黑客,讓我打電話給schedule()
內ATOMIC(例如環形鎖)背景:在Linux IRQ中調用schedule()
int p_count = current_thread_info()->preempt_count;
current_thread_info()->preempt_count = 0;
schedule();
current_thread_info()->preempt_count = p_count;
但是,這並不在裏面工作的IRQ,該系統只是停止AFER調用schedule()
。
有沒有辦法破解內核的方式讓我做到這一點?我使用的是Linux內核4.2.1用戶模式Linux