私はx86 Debianシステムをゲストとして起動するためにx86ホストでQEMU2.6.0を使用しています。ホストは、RHEL7とKVMが有効な状態で起動された8コア、2ソケットシステムです。 2つのPCIデバイスがゲストでエミュレートされています。 - このPCIデバイスの同時動作を確認する必要があります。 PCI デバイス A は、特定の BAR オフセット X にアクセスすると、一定期間デバイスで sleep() が発生するように設計されています。この省電力期間中、テストアプリケーションはPCIデバイスBのBARにアクセスし、ここにデータを書き込もうとします。
- 2 つの PCI デバイスのメモリ領域を作成すると、グローバルロックがクリアされます。
- PCI A および B の BAR にアクセスしようとするテスト・アプリケーションを開始するために開始されるプロセスの作業プリファレンスを設定します。
- -smp 4オプションでQEMUを起動すると、4つのvcpuが生成されます。タスクアフィニティを設定して、スケジューラが両方のデバイスへのアクセスタスクを別々のvCPUとしてスケジュールするようにします。
- この場合、PCI デバイス A が vcpu0 から省電力モードに移行しても、PCI デバイス B BAR アクセスは、ワークセットを使用して選択した別の vcpu 番号で予約する必要があります。
- この動作は観察されなかった。デバイスAがスリープモードに入ると、デバイスBのR / W操作が停止し、デバイスAがスリープモードを終了したときにのみ再開されます。
この動作が観察される理由について考えを共有できる人はいますか?
現時点では、この問題のデバッグについて知らず、この問題のデバッグを開始する方法についての指示が必要です。
挨拶LT