3.14. RCU コールバックのオフロード


Read-Copy-Update (RCU) システムは、カーネル内で相互に除外されるロックレスメカニズムです。RCU 操作を実施することで、コールバックが CPU のキューに置かれ、今後メモリーを安全に削除できる状況になると実行されます。
RCU コールバックは、rcu_nocbs および rcu_nocb_poll カーネルパラメーターを使用してオフロードできます。
  • RCU コールバックを実行する候補から 1 つ以上の CPU を削除するには、rcu_nocbs カーネルパラメーターで CPU のリストを指定します。次に例を示します。
    rcu_nocbs=1,4-6
    or
    rcu_nocbs=3
    2 つ目の例では、CPU 3 が no-callback CPU であることをカーネルに指示します。これは、RCU コールバックが CPU 3 に固定された rcuc/$CPU スレッドではなく、ハウスキーピング CPU に移動できる rcuo/$CPU スレッドで実行されることを意味し、CPU 3 は RCU コールバックジョブの実行から解放されます。
    RCU コールバックスレッドをハウスキーピング CPU に移動するには、tuna -t rcu* -c X -m コマンドを使用します。ここで、X は ハウスキーピング CPU を示します。たとえば、CPU 0 がハウスキーピング CPU のシステムでは、以下のコマンドを使用してすべての RCU コールバックスレッドを CPU 0 に移動できます。
    ~]# tuna -t rcu* -c 0 -m
    これは、CPU 0 以外のすべての CPU が RCU の動作に依存します。
  • RCU オフロードスレッドは別の CPU の RCU コールバックを実行できますが、各 CPU は対応する RCU オフロードスレッド起動を処理する必要があります。各 CPU の RCU オフロードスレッドを起動する責任を軽減するには、rcu_nocb_poll カーネルパラメーターを設定します。
    rcu_nocb_poll
    rcu_nocb_poll が設定されている場合、実行するコールバックがあるかどうかを確認するために、RCU オフロードスレッドがタイマーによって定期的に起動されます。
以下の 2 つのオプションに対する一般的なユースケースは以下のとおりです。
  1. rcu_nocbs=cpulist を使用して、ユーザーがすべての RCU オフロードスレッドをハウスキーピング CPU に移動できるようにします。
  2. rcu_nocb_poll を設定すると、各 CPU の RCU オフロードスレッドを起動する責任が軽減されます。
この組み合わせにより、ユーザーのワークロードに特化した CPU への干渉が軽減されます。
リアルタイムでの RCU チューニングの詳細は、Avoiding RCU Stalls in the real-time kernel を参照してください。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る