linux – spin_lock和raw_spin_lock()有什么区别?
发布时间:2020-12-14 02:19:20 所属栏目:Linux 来源:网络整理
导读:linux内核中有每个自旋锁的原始变体,我想知道它的用法吗? 例如: raw_spin_lock(),raw_spin_lock_irqsave()等 解决方法 spin_lock *函数与raw_spin_lock * ones相同,当启用锁定调试(CONFIG_DEBUG_LOCK_ALLOC)时,对锁定操作执行一些额外的运行时检查,例如检
linux内核中有每个自旋锁的原始变体,我想知道它的用法吗?
例如: raw_spin_lock(),raw_spin_lock_irqsave()等 解决方法
spin_lock *函数与raw_spin_lock * ones相同,当启用锁定调试(CONFIG_DEBUG_LOCK_ALLOC)时,对锁定操作执行一些额外的运行时检查,例如检查死锁.这些检查由lockdep子系统执行.
通常,只要有可能就应该使用spin_lock *函数. 只有在非常棘手的锁定策略的极少数情况下,当lockdep可以产生错误警告时,可以使用raw_spin_lock *函数. 此外,raw_ *函数可以优于常用函数,以减少内存使用或性能原因.但它应该是实际的时间/空间测量,反映了使用这些优化的重大胜利. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |