Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 检查是否在堆芯转储中持有旋转锁_Linux_Linux Kernel_Linux Device Driver - Fatal编程技术网

Linux 检查是否在堆芯转储中持有旋转锁

Linux 检查是否在堆芯转储中持有旋转锁,linux,linux-kernel,linux-device-driver,Linux,Linux Kernel,Linux Device Driver,我试图分析Linux内核的内核转储中的自旋锁变量。对于互斥体,如果互斥体被锁定,则count变量的值应为0。对于spinlock,spinlock\u t my\u lock具有如下字段 (struct raw_spinlock) rlock (arch_spinlock_t) raw_lock (unsigned int) lock (unsigned int) break_lock 整数变量的值为0。如果锁被取下,这些值会有不同的值吗?是否

我试图分析Linux内核的内核转储中的自旋锁变量。对于互斥体,如果互斥体被锁定,则count变量的值应为0。对于spinlock,spinlock\u t my\u lock具有如下字段

(struct raw_spinlock) rlock
      (arch_spinlock_t) raw_lock
            (unsigned int) lock 
      (unsigned int) break_lock
整数变量的值为0。如果锁被取下,这些值会有不同的值吗?是否有其他方法检查自旋锁变量的转储以查看它是否被占用?值依赖于体系结构吗?

尝试使用spin\u Is\u locked()

(在spinlock.h中定义)

调用die()后,我收集了一个堆芯转储并检查了die_lock spinlock变量的状态,该变量在die()发生时锁定在traps.c中。在锁定的情况下,lock的值为1。这给了我们一些清晰


但是也有使用大整数值的锁。仍在尝试解决此问题。

如果锁定,它将具有不同的值。您可以使用代码中的spin_is_locked()进行检查。
但在分析dump时,请检查spin_lock()是如何实现的。它将提供有关如何检查和获取锁的信息。当然,spin_lock()是依赖于体系结构的代码,但逻辑是相同的

我猜你看错问题了。它不是关于检查活动系统中的旋转锁状态。这是一个核心转储。