どういう意味ですか?complete on same CPU-group
? 2行のコードが表示されます。
#define QUEUE_FLAG_SAME_COMP 9 /* complete on same CPU-group */
#define QUEUE_FLAG_SAME_FORCE 18 /* force complete on same CPU */
CPU-group
同じCPU
?force complete
これらとそしての違いは何ですかnon-force complete
?
答え1
それは違いです。
#define QUEUE_FLAG_SAME_COMP 9 /* complete on same CPU-group */
#define QUEUE_FLAG_SAME_FORCE 18 /* force complete on same CPU */
これで、同じCPUグループを次のように定義できます。
CPU が同じクラスター (CPU グループなど) の下にある場合、完了に優先される CPU はそのクラスターの最初の CPU になり、そうでない場合はそのクラスターのオンライン CPU になります。これは5.9未満のカーネルに主に適用されます。たとえば、CPU[0-8] から CPU[0-4] の下のすべての CPU タイプが同じであれば、同じ CPU グループと呼ばれます。
または、すべてのCPUが同じL3キャッシュを共有します。これにより、これらは同じCPUグループの一部になります。たとえば、システムにCPU0-8があり、同じL3キャッシュがある場合は、同じCPUセットと呼ばれます。
2番目のクエリは次のようになります。QUEUE_FLAG_SAME_COMP, 同じ CPU グループに属する CPU で要求が完了します。 CPU3がCPU0から割り込み要求を受けたと仮定すると、CPU0とCPU3は同じグループにあるため、irqを完了する同じCPUはソフト割り込み/要求の完了をトリガします。
しかし、あなたはそれを選択的にするよう強制します。QUEUE_FLAG_SAME_FORCE、上半分が処理された後、下半分は要求を開始したのと同じCPUに強制されます。上記の例では、CPU 3 と仮定しています。これにより、要求はCPU3で完了します。これにより、ほとんどのブロック層およびSCSI中間層完了操作をIPIを介して送信CPU(cpu3など)に再プッシュできます。