【问题标题】:Is there a function/Macro in Linux Kernel to get current preemption status on smp machine?Linux内核中是否有一个函数/宏来获取smp机器上的当前抢占状态?
【发布时间】:2015-07-09 07:42:30
【问题描述】:

在我的项目中,我使用get_cpu()put_cpu()smp 机器上的内核中禁用和启用抢占。

是否有safe way 来获取 smp 机器中的当前抢占状态,即抢占是打开还是关闭。

【问题讨论】:

  • 我觉得秒段少了一个字:)
  • @MarcusMüllerꕺꕺ 谢谢修复

标签: c linux operating-system kernel


【解决方案1】:

preempt_count() 返回当前线程的抢占计数。 0 值表示允许抢占。

通常,除非进行自检,否则您不应请求抢占状态。如果某些代码块需要禁用抢占,则应使用 preempt_disable()/preempt_enable() 调用(或它们的替代方法)来包装它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2016-09-27
    • 2018-06-05
    相关资源
    最近更新 更多