我正在尝试分析 Linux 内核核心转储中的自旋锁变量。在互斥锁的情况下,如果互斥锁被锁定,则计数变量的值应为 0。在自旋锁的情况下,spinlock_t my_lock 具有如下字段

(struct raw_spinlock) rlock
      (arch_spinlock_t) raw_lock
            (unsigned int) lock
      (unsigned int) break_lock

整数变量的值为 0。如果锁定,这些变量中会有不同的值吗?有没有其他方法可以检查自旋锁变量的转储以查看它是否被占用?值(value)架构是否依赖?

最佳答案

尝试使用 spin_is_locked()

(在 spinlock.h 中定义)

关于linux - 检查是否在核心转储中持有自旋锁,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27739481/

10-14 06:07