
vmcore分析锁问题实例(x86-64)
可以看到owner为0xff27411f3bd0df01,最后的1不是task_struct的地址,是在获得锁的时候或的,实际的task_struct地址是0xff27411f3bd0df00。lock->wait_lock就是lock的值,在调用_raw_spin_unlock_irq的时候把rbp传给参数寄存器,也就是说rbq当中存的就是lock的值。并未发现对%rbp的操作,可能是编译器进行了优化,因为schedule_rtlock并未改变寄存器%rbq的值,所以并未进行压栈。









