linux - Linux内核文档中的下面这句话是什么意思?

标签 linux linux-kernel

在 Linux 内核源代码中,文件 Documentation/scheduler/sched-arch.txt 包含以下行。

Your cpu_idle routines need to obey the following rules:

Preempt should now disabled over idle routines. Should only be enabled to call schedule() then disabled again.

我是 Linux 内核世界的新手,所以我可以为 cpu_idle 例程的实现者想到第一行的三种可能解释。

  1. 我们应该假设抢占被禁用。
  2. 我们应该验证抢占被禁用
  3. 我们应该确保禁用抢占。

有更多内核经验的人知道正确的解释吗?

最佳答案

哎呀。如果您要添加对新平台的支持,请随时更新该评论。

我很长时间没有进行 Linux 内核开发,但据我所知,它应该说“在运行 cpu_idle 例程时 [内核] 禁用了抢占。你应该只在调用调度时启用它(),然后立即再次禁用它。”

例如,在 PPC idle.c 中,while 循环结束于:

preempt_enable_no_resched();
schedule();
preempt_disable();

否则不涉及抢占。

关于linux - Linux内核文档中的下面这句话是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41528967/

相关文章:

linux - ant sshexec 任务在执行命令返回时或之前返回吗?

linux-kernel - 为什么用户空间应用程序应该锁定 Ebpf 映射?

linux - tty 核心流字符

linux - 仅使用 bash/标准 Linux 命令去除字符串中的单引号和双引号

Linux - 安装了 Nagios 但出现 Forbidden 403 错误

linux-kernel - 为什么结构化类型通过结构标记而不是类型名来引用?

c - 如何在内核模块内创建/proc文件?

ARM 中的 Linux Process Context 和 SVC 调用

linux - crontab运行问题

linux - 从 SOAPUI 访问服务器 (PUTTY) 上的日志