Linux 内核中是否有 function/Macro 来获取 smp 机器上的当前抢占状态?

Is there a function/Macro in Linux Kernel to get current preemption status on smp machine?

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

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

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

通常情况下,您不应该请求优先状态,除非是为了自我检查。如果某些代码块需要禁用抢占,则应使用 preempt_disable()/preempt_enable() 调用(或它们的替代方法)将其包装起来。