誰かが知っていますか?perfが常に_raw_spin_unlock_irqrestoreまたはその他のスピンロック解除機能を表示するのはなぜですか? spin_unlockの実装は、通常、spin_lockと比較して簡単です。 spin_lockに大きな競合がある場合、perfはspin_lockに結果を表示しませんか?perfが常に_raw_spin_unlock_irqrestoreまたはその他のスピンロック解除機能を表示する理由
答えて
あなたはどのワークロードを実行していますか?最初に競合があると確信していますか?
割り込みを再度有効にするにはコストがかかりますが、割り込みで再生されるロックは非常に頻繁に表示されないため、irq_restoreが表示されます。マシンが大部分アイドル状態になっているときに、そのマシンを表示する可能性が最も高くなります。キックのため
、私はスピンロックに主張些細なワークロードを実行し、unsuprisinglyそれが最もまで見せていたロックルーチンだった:私のPERFトップ結果の月 断片の
81.36% [kernel] [k] native_queued_spin_lock_slowpath
4.67% libc-2.17.so [.] __memset_sse2
1.63% [kernel] [k] find_next_zero_bit
0.92% [kernel] [k] _raw_spin_lock
0.81% [kernel] [k] __audit_syscall_exit
0.76% [kernel] [k] __alloc_fd
0.69% [kernel] [k] __slab_free
0.62% [kernel] [k] security_compute_sid.part.13
0.45% [kernel] [k] kmem_cache_free
@employeeを
3.32% [kernel] [k] native_queued_spin_lock_slowpath
3.18% [kernel] [k] update_load_avg
3.13% [kernel] [k] __switch_to
3.12% [kernel] [k] native_write_msr
3.02% [kernel] [k] __sched_text_start
2.81% [kernel] [k] _raw_spin_lock
2.20% [kernel] [k] _raw_spin_lock_irqsave
1.97% [kernel] [k] switch_mm_irqs_off
1.70% [kernel] [k] __blkdev_direct_IO_simple
1.69% [kernel] [k] __get_user_pages_fast
そして、これはあなたの詳細な応答のための enter image description here
写真としての写真は非常に有用ではありません。あなたが同じワークロードを実行していて、結果が反復可能であると仮定すると、cpu時間はirqrestoreで費やされていないことがわかります。私は何が起こっているのか疑いがあります。カーネルは専用の割り込みスタックを持っています。ルーチンがirqrestoreを実行すると、すべてのキューに入れられた割り込みが現在処理されています。バックトレースを取得しているレポーティングモードでは割り込みスタックは検査されないので、先頭にirqrestoreを持つダンプだけが得られます。 –
ええと、フレームグラフはそれほど正確ではないようです。 perf topの結果から、_raw_spin_unlock_irqrestore()はCPUのコストがあまり高くありませんでした。あなたの親切な提案に感謝します。 –
- 1. JavaScriptが他の機能を理由なしに呼び出す
- 2. 機能が最後に返品せずに正常に機能する理由
- 3. ネイティブなPerfモニターの理解
- 4. 表示の理解:table-cell;機能しています
- 5. 他のテクノロジの点で.Net 4.0の機能を理解する
- 6. noverblasterビデオプレーヤーが常に他の要素の上にある理由
- 7. fabricjs 1.6.3:アクティブオブジェクトが常に上に表示される理由
- 8. この書き換えが機能しない理由を理解するのに役立ちますか?
- 9. SQLの削除クエリが機能しない理由
- 10. Meteor Routerの機能が常に2回実行される理由
- 11. アンカータグが削除後に機能しない理由#
- 12. 「OutOfMemoryError」のその他の理由
- 13. Webフォントが機能しない理由を理解できません。
- 14. Admobの広告IDが機能しません。他のIDは正常に機能しました
- 15. Androidデバイスモニタには、私が望むプロセスが表示されませんでしたが、他のものを表示する理由は何ですか?
- 16. linuxのperfユーティリティはスタックトレースをどのように理解していますか?
- 17. Scalaのイテレータは、私はイテレータがそのように動作している理由を理解することは非常に懸命に試みた
- 18. シークレットウィンドウやその他のウィンドウで通常のウィンドウのCookieが機能しない
- 19. それが機能しない理由スウィフト
- 20. InApp購入プロセスが正常に完了した後、既存の機能のロックを解除します
- 21. この機能が存在する理由は何ですか?
- 22. CodeIgniterのflashdataが常に機能するとは限りませんが、userdataは常に機能しますか?
- 23. はそれが私はこのためにコンパイルエラーを取得する理由を理解していない
- 24. uib-datepicker-popup:カレンダー表示、ボタンバーボタンは正常に機能しますが、曜日ボタンは表示されません
- 25. アスタリスクサーバの機能を理解する
- 26. ITIL V3の機能を理解する
- 27. 機能は、ハード何らかの理由
- 28. 私のアプリが「機能しなくなった」理由を調べるには?
- 29. APKファイルに画像が表示されていて、その画像を非表示にする理由
- 30. Perf注釈、ソースコードのみを表示
おかげで私のFrameGraph結果です。 –
私は最新のブロック-mqの競合状態をチェックするために、ローカルと使用されたperfでランダムな読み込みテストケースを実行しました。その結果、ioスケジューラによって呼び出されるnative_queued_spin_lock_slowpathパスを除き、_raw_spin_unlock_irqrestoreパスもあります。特に、FrameGraphによって生成された結果。 –