【发布时间】:2012-09-24 19:04:35
【问题描述】:
在互斥锁的内核实现中,线程所有者字段仅在它是 SMP 构建时才存在。我可以理解,在良好且干净的代码下,只有在获取成功时,线程才会调用 release,因此我们可以通过不跟踪线程来节省一些缓存和 cpu 周期。但是为什么 SMP 需要它呢?是因为在 SMP 中,互斥体是混合的并且在线程所有者在另一个 cpu 上并且需要此字段作为参考时自旋,还是背后有更多原因?
【问题讨论】:
标签: linux linux-kernel mutex semantics smp