カーネルでユーザー空間スレッドを「目覚めさせる」方法は何ですか?

カーネルでユーザー空間スレッドを「目覚めさせる」方法は何ですか?

データを受け取るカーネルデバイスドライバと、データを待つユーザ空間スレッドがあるとします。

ユーザー空間スレッドをブロックし、カーネルドライバがデータを処理し、適切なバッファに入れた後に目を覚ますようにして、サイクルの無駄を避けたいと思います。

これを行う適切な方法は何ですか?信号の使用に関する複雑なアイデアについて読んだ。

関連情報