module_init を使用して、kthread を作成して起動しました。それを維持し、機能タスクも実行するために、次のアプローチを使用しました。割り込みでフラグを変更しているので、それが実行できる唯一のアプローチでした。現在、コードのパフォーマンスが信じられないほど低下しています。問題を次のコードに絞り込みました。
while(1){
//Do my tasks here after changing flag
while(get_flag() ){ //Waiting for a flag, to basically do my Func in the previous line.
schedule();
}
}//to keep a kthread alive after initial create.
パフォーマンスの低下に関する詳細: スケジュールを含む 2 番目の while(1) を使用しないと、コードのデータ転送速度は 35MB/秒ですが、この小さな行では 5MB/秒に低下します。
kthread をスリープ状態にしてフラグの変更を待つ方法は他にありますか?