問題タブ [workqueue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - タスクレットとワークキューの違いは何ですか
私は Linux デバイス ドライバーの初心者で、 と の正確な違いを知りたいと思っていtasklet
ますworkqueue
。次の疑問があります。
- 割り込み/プロセス コンテキストで実行する場合、割り込み、タスクレット、およびワークキューはどのカーネル スタックを使用しますか?
- タスクレットとワークキューはどの優先度で実行され、その優先度を変更できますか?
- 独自のワーク キュー リストを実装する場合、それを個別にスケジュール/優先順位付けできますか?
c - ワークキューが終了する前に同じ割り込みが発生した場合のワークキューの処理
Linux には ISR があり、ワークキューをスケジュールして作業を下半分にプッシュしたいと考えています。現在、ワークキューがタスクを完了しておらず、同じ割り込みが再び発生する状況があります。
今、私はどのように状況を処理する必要がありますか、それともそのような状況を処理するために何かをする必要がありますか?
c - Linux カーネルでのワークキューの実装
Linuxカーネルの以下のAPIの違いを理解するのに役立つ人はいますか?
私はサンプル モジュールを作成しました。それらを を使用して表示しようとするとps -aef
、両方ともワークキューが作成されましたが、違いはわかりませんでした。
http://www.makelinux.net/ldd3/chp-7-sect-6を参照し、LDD3 によると:
create_workqueueを使用すると、システム上の各プロセッサ専用のスレッドを持つワークキューが得られます。多くの場合、これらのスレッドはすべてやり過ぎです。単一のワーカー スレッドで十分な場合は、代わりに create_singlethread_workqueue を使用してワークキューを作成します。
しかし、複数のワーカー スレッド (それぞれがプロセッサ用) を確認できませんでした。
linux - 遅れた作業が予定されている場合にシステムがブロックされる
私は学術プロジェクトに取り組んでおり、Linux のワークキューの使用法を理解する必要があります。このため、1000 jiffies 後にカスタム ワークキューでの作業の実行を単純にスケジュールする小さなモジュールを開発しました。ただし、タイムアウトが期限切れになると、システムがブロックされ、VM を再起動する必要があり、デバッグ用の情報を収集できません。
これらは私が使用しているコードの一部です:
すぐに (タイマーが切れる前に) シェルで「dmesg」を要求すると、「ステップ 1」の出力を読み取ることができますが、システムを使用できません。おそらくコードに初歩的なバグがあることは知っていますが、それを個別化することはできません。助けてくれてありがとう。