でスレッドアフィニティを設定するほとんどのCプログラマーは、libcがスレッドcpuアフィニティ調整(pthread_attr_setaffinity_np())のための移植性のない関数を提供することを知っています。しかし、私が実際には分かっていないのは、カーネルモジュールを実装するときにどのようにこれを行うことができるかということです。実際の例に言及したり、リダイレクトしたりする答えは、むしろ参考になります。linuxカーネルモジュール
5
A
答えて
3
kthreadsは、カーネルスレッドの略です。指定したCPU上にそのようなものを作成するには、kthread_create_on_cpu()
を呼び出す必要があります。 include/linux/kthread.h
で定義されています。スレッドはスリープ状態で作成されるので、wake_up_process()
を呼び出す必要があります。それで全部です。
私の答えはthisの質問でkthreadsを使用する例があります。
0
kthread_bind()関数を使用できます。
関連する問題
- 1. Linuxカーネルモジュール
- 2. コンパイルLinuxカーネルモジュール(lincan)
- 3. Linuxカーネルモジュールのスレッドローカルデータ
- 4. Linuxカーネルモジュール - セキュリティリスク?
- 5. Linuxカーネルモジュールの逆アセンブリコード
- 6. Linuxカーネルモジュールの動的配列
- 7. Linuxカーネルモジュールのメモリリーク検出ツール
- 8. Linuxカーネルモジュールのioctlの上ENOTTY
- 9. Linuxカーネルモジュール - 冗長が含ま
- 10. Linuxカーネルモジュール - ディレクトリの作成
- 11. Linuxカーネルモジュールのデバッグ方法は?
- 12. Linuxカーネルモジュールについて
- 13. Linuxカーネルモジュールの定期タスク
- 14. Linuxカーネルモジュールでの遅延方法クリティカルセクション
- 15. linuxカーネルモジュールの最大ポインタ/配列サイズ
- 16. Linuxカーネルモジュールのタスク単位のデータ構造
- 17. ユーザ空間とLinuxカーネルモジュールとの対話
- 18. Linuxカーネルモジュールの文字列操作
- 19. Linuxカーネルモジュールからdebugfsに書き込む
- 20. ブート時にlinuxカーネルモジュールをロードする
- 21. Linuxカーネルモジュール内のプロセッサアフィニティの設定
- 22. ユーザスペースプロセス上のLinuxカーネルモジュールのシグナルが抹消
- 23. gdbを使ってLinuxカーネルモジュールをデバッグ
- 24. Linuxカーネルモジュールのsys/socket.hの置き換え?
- 25. Linuxカーネルモジュールをコーディングするには?
- 26. Linuxカーネルモジュールの浮動小数点演算
- 27. Linuxカーネルモジュールにエンクレーブを作成する
- 28. LinuxカーネルモジュールでのRPCの使用
- 29. Linuxのロード可能なカーネルモジュールexit_module
- 30. Linuxカーネルモジュールはいつ書くべきですか?
もっと詳しく説明してください:既存のスレッドのアフィニティを変更するか、カーネルモジュールから特定のアフィニティを持つ新しいスレッドを生成しますか?あなたはこのようにして何をしようとしていますか?この情報は専門家があなたに答えを与えるのを助けるかもしれません。 – Eugene
遅れて申し訳ありません。私がしたいのは、それぞれ異なるコアに2つのスレッドを確立することです。そのため、キャッシュの一貫性の問題についていくつかの測定を行うことができます。私の測定を正確にするために、私はインラインアセンブリを追加する必要がありますが、プリエンプションも無効にする必要があります。これを行うには、タスク用のLinuxカーネルモジュールが必要です。しかし、そのようなモジュールの場合、libcライブラリは見えません。このため、どの関数がTHREADの親和性を変更しているのか、LKMのPROCESSの変更は見たくなります。これが今はっきりしていることを願って – user1533288