私はディレクトリに1をエコーし、しばらくすると0をエコーしますtracing_on
。/sys/kernel/debug/tracing
ただし、最初の項目のタイムスタンプ216.852
と最後の項目のタイムスタンプ234.136
を見ると、合計実行時間は約18秒です。どうやってこれができますか?別のコンピュータで何度も試してみましたが、時間が異常でした。私はどこか間違っていますか?
答え1
正確な理由はわかりませんが、Linuxはリアルタイムオペレーティングシステムではないため、特定の時間内に動作が保証されないことを知っています。また、オン/オフタスクトレースの優先順位が非常に低いため、カーネルが要求を実行するのに適切な時間を待っている可能性があります。これはユーザーが経験している遅延です。
操作が次の場合非同期、ファイルに書き込むと、書き込みコマンドはすぐに返され、要求はカーネルに保存されますが、カーネルは後でそれを読み込み、変更に応じてアクションを実行します。