[問題] spinlock問題
板友們晚安
我想請教一個Linux Kernel的問題,但看了Linux板,感覺不是在討論code。
所以我就來這裡發文看看。若我在這邊發文不適合可以在下面回文,我會
再刪除,謝謝。
我在【知乎】這個平台看到有關於spin_lock_irq()的介紹
https://reurl.cc/eWe4lb
裡面有個圖關於spin_lock_irq(&lock1)後再一次spin_lock_irq(&lock2)
緊接著spin_unlock_irq(&lock2)後,CPU發生了interrupt,若好死不死
這ISR內要執行lock1所保護的critical section,由於前面已有task獲取
到lock1的鎖了,ISR內鐵定拿不到lock1便會deadlock.
其實我不太知道為何deadlock的原因。查了網路上的說明更加混亂了...
這有兩種deadlock的原因請問是哪一種呢?
1.ISR內因獲得不到鎖所以永久的spin,所以先前拿到鎖的task也因此無法解鎖.
2.先前拿到鎖的task在被中斷後狀態變成TASK_INTERRUPT,schedual無法再調度
task使之有機會解鎖,這意味著ISR內不會永久spin,且有一定的時間霸佔CPU?
希望能有kernel高手能解答小弟疑惑@@,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.93.106 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1675088723.A.42F.html
推
01/30 22:36,
1年前
, 1F
01/30 22:36, 1F
→
01/30 22:36,
1年前
, 2F
01/30 22:36, 2F
→
01/30 22:52,
1年前
, 3F
01/30 22:52, 3F
→
01/30 23:27,
1年前
, 4F
01/30 23:27, 4F
→
01/30 23:28,
1年前
, 5F
01/30 23:28, 5F
→
01/30 23:29,
1年前
, 6F
01/30 23:29, 6F
→
01/30 23:30,
1年前
, 7F
01/30 23:30, 7F
→
01/30 23:31,
1年前
, 8F
01/30 23:31, 8F
→
01/30 23:32,
1年前
, 9F
01/30 23:32, 9F
→
01/31 21:10,
1年前
, 10F
01/31 21:10, 10F
推
02/02 19:50,
1年前
, 11F
02/02 19:50, 11F
→
02/02 19:50,
1年前
, 12F
02/02 19:50, 12F
→
02/02 19:50,
1年前
, 13F
02/02 19:50, 13F
→
02/02 21:37,
1年前
, 14F
02/02 21:37, 14F
→
02/02 21:40,
1年前
, 15F
02/02 21:40, 15F
→
02/02 21:41,
1年前
, 16F
02/02 21:41, 16F
→
02/02 21:42,
1年前
, 17F
02/02 21:42, 17F
推
02/04 10:01,
1年前
, 18F
02/04 10:01, 18F
推
02/04 10:02,
1年前
, 19F
02/04 10:02, 19F
推
02/04 10:03,
1年前
, 20F
02/04 10:03, 20F
推
02/04 10:04,
1年前
, 21F
02/04 10:04, 21F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章