mutex_type_spin

指定したカーネル相互排他ロックがスピン相互排他ロックの場合に、ゼロ以外の値を返します。

mutex_type_spin(int(vmlinux`struct mutex *))

mutex_type_spin関数は、指定したカーネル相互排他ロックがスピン相互排他ロックの場合に、ゼロ以外の値を返します。Oracle Linuxカーネルのすべての相互排他ロックは適応型であり、mutex_type_spin関数は常に0を返します。

例7-31 mutex_type_spinを使用して相互排他ロックがスピン相互排他ロックかどうかを確認する方法

Oracle Linux上のすべての相互排他ロックは適応性があるため、このプログラムの最後の節は処理されません。

fbt::mutex_lock:entry
{
        this->mutex = arg0;
}

fbt::mutex_lock:return
{
        this->spin = mutex_type_spin((struct mutex *)this->mutex);
}

fbt::mutex_lock:return
/this->spin/
{
        printf("mutex_type_spin returned non-zero, expected 0\n");
        exit(1);
}