如何在内核中禁用惰性抢占

如何在内核中禁用惰性抢占

我对 Linux 还比较陌生,正在为机器人应用程序安装和运行实时内核。我使用的是 Ubuntu 14.04,使用内核 3.14.3 和 3.14.3-rt5 实时补丁。也使用 x86-64。

已知错误是,当启用惰性抢占时,整个系统在某些负载下会崩溃。这种情况已经发生过几次了。我的问题是:

如何禁用惰性抢占?

我读到要添加NO_PREEMPT_LAZY到的末尾/sys/kernel/debug/sched_features,但是当我尝试这样做(使用~$ sudo vim /sys/kernel/debug/sched_features)时,在尝试保存并退出(:wq)时出现以下错误:

"/sys/kernel/debug/sched_features"
"/sys/kernel/debug/sched_features" E667: Fsync failed
WARNING: Original file may be lost or damaged
don't quit the editor until the file is successfully written!
Press ENTER or type command to continue

如果有人能帮助我绕过 vimFsync failed或者以其他方式禁用延迟抢占,我将不胜感激。

答案1

看起来你得到了你的大部分答案都在别处. 因此在编辑文件/系统/, 具体来说调试文件系统,这不起作用,因为它是一个伪文件系统。最好的方法是将 >> 回显到文件并以 root 身份执行,因为你正在直接与内核对话。我无法判断实现 sched_features 的代码是否接受该值。调度程序安静复杂的

相关内容