【发布时间】:2013-04-16 05:08:47
【问题描述】:
我正在尝试在 linux 内核中实现一些簿记。我想在进程开始在 CPU 上执行之前开始一些日志记录。一旦进程产生 CPU,我必须再次更新我的统计信息。
我想知道我应该在哪里添加我的代码。
是 schedule() 还是 switch_to() ??
我知道在执行 switch_to() 之前中断被禁用..
在调用 schedule() 之前是否禁用中断??
【问题讨论】:
我正在尝试在 linux 内核中实现一些簿记。我想在进程开始在 CPU 上执行之前开始一些日志记录。一旦进程产生 CPU,我必须再次更新我的统计信息。
我想知道我应该在哪里添加我的代码。
是 schedule() 还是 switch_to() ??
我知道在执行 switch_to() 之前中断被禁用..
在调用 schedule() 之前是否禁用中断??
【问题讨论】:
在调用schedule() 之前不会禁用中断。获得rq->lock时直接在__schedule()中禁用中断。
context_switch() 依赖于体系结构,因此如果您的代码与体系结构无关并且您不想为每个体系结构编写代码,则应将代码添加到 __schedule()。
【讨论】: