私は、cgroupを使用して2つのcpu_exclusive cpusets、AとBを作成し、すべてのユーザースレッドとすべての非バインドカーネルスレッドをcpuset Aに接続されたcgroupに移行したLinuxシステムを持っています。cpusetAで実行されているものは、さまざまなスケジューラポリシーを持っています優先順位が異なり、cpuset Aで実行されているスレッドの数は、cpuset Aのコア数よりも多くなります。
cpuset Bに接続されているいくつかの非常にアクティブなプロセスもあります。これらのプロセス全体のユーザースレッドの総数は、cpuset Bで排他的に使用可能なコアの数を超えることはありません。目的は、cpusetで実行されるこれらの重要なタスクをシールドすることです。マシンの他のアクティビティからのBと、処理の待ち時間を最小限に抑えるため。
このような設定で、cpuset Bで実行されているユーザースレッドのスケジューリングポリシー/優先順位は、目に見える影響を及ぼしますか?言い換えると、B cpusetスレッドのスケジューリングポリシーをデフォルトのSCHED_OTHERからSCHED_FIFOまたはSCHED_RRに変更すると、良い結果も悪い結果も発生しますか?
スケジューラはcpuset Bで実行されている各スレッドに独自の専用コアを割り当てることができるため、答えは「いいえ」のように見えます。優先順位を付けたりスケジュールしたりするものは何もないため、Bのポリシーと相対的な優先順位はありません。 cpusetスレッドは重要ではありません。一方で、バインドされたカーネルスレッドと「スケジューラードメイン」の問題があること、そしておそらく私が考慮していない他のこともあります。
オーバープロビジョニングされた排他的cpusetで実行されているスレッドのスケジューリングポリシーと優先順位は、実際的な意味で重要ですか?