- 論壇徽章:
- 0
|
hi, 有個問題, 使用 spin_lock_bh 時, 長時間加不上鎖, 導(dǎo)致系統(tǒng)崩潰。
spin_lock_bh 生成的匯編代碼:
- call 2e81 <xxx+0x51>
- 2e81: R_386_PC32 local_bh_disable --- 先禁止軟中斷
- mov 0x8(%esp),%ecx
- mov 0x4(%esp),%esi
- add %esi,%ecx
- lea 0x0(,%ecx,4),%eax
- mov %eax,(%esp)
- mov %eax,%edx
- mov $0x100,%eax
- mov 0xc(%edi),%ebx
- add %ebx,%edx
- lock xadd %ax,(%edx)
- cmp %ah,%al --- 這里比較(ah != al)
- je 2eb4 <xxx+0x84>
- pause --- (ah != al)進來這里, 也掛在這里
- mov (%edx),%al
- jmp 2eaa <xxx+0x7a>
- mov 0x8(%edi),%edx
- lea 0x0(,%ecx,8),%ebp
復(fù)制代碼 不知道信息夠不夠全, 系統(tǒng)環(huán)境是 多核, 存在內(nèi)存泄露, 踩內(nèi)存等不穩(wěn)定因素, 會成為
spin_lock_bh 加鎖時間過長導(dǎo)致宕機的原因嗎???
還有其他什么因素可能會導(dǎo)致 spin_lock_bh 加鎖失敗, 就一個地方加鎖,應(yīng)該不存在鎖資源已經(jīng)被占用情況。
謝謝。 |
|