sohu2000000 发表于 2015-06-15 11:23

内核中static_key_false()函数的作用是什么呢?

内核中static_key_false()函数的作用是什么呢? 请大侠指教



static inline bool kvm_vcpu_has_lapic(struct kvm_vcpu *vcpu)
{
if (static_key_false(&kvm_no_apic_vcpu))
return vcpu->arch.apic;
return true;
}

nswcfd 发表于 2015-06-25 21:23

本帖最后由 nswcfd 于 2015-06-25 21:23 编辑

利用static_key加上gcc的jump label扩展,可以条件分支从一个branch语句,优化为一个nop,避免不必要的pipeline stall。

当key条件发生修改的时候,需要动态的修改代码段。

http://lwn.net/Articles/487426/
可以关注一下两段汇编代码的差异。

sohu2000000 发表于 2015-07-01 10:28

谢谢,学习了
页: [1]
查看完整版本: 内核中static_key_false()函数的作用是什么呢?