robię rzeczy na KVM i mam kilka pytań, które nie mogą się dowiedzieć.jak przerwać obsługę KVM
1> jak wiemy, normalnie zewnętrzne przerwanie spowoduje VMexit i hiperwizor wstrzykuje wirtualne przerwanie, jeśli jest dla gościa. Następnie, który irq zostanie wstrzyknięty (mam na myśli wektor przerwań do indeksowania gościa IDT)? W jaki sposób KVM dowie się o tym (powiązanie IRQ z hostem z wirtualnym IRQ)?
2> Jeśli dla przypisanego urządzenia do gościa, hiperwizor dostarczy to IRQ gościowi. śledząc kod, stwierdziłem, że IRQ hosta jest inne w przypadku gościa (mam na myśli wektor przerwań). jak KVM skonfigurować, który wektor przerwań powinien używać gość?
3> jeśli nie skonfigurujemy wyjścia na przerwanie zewnętrzne przez ustawienie pola w VMCS, co stanie się podczas przerwań fizycznych? czy procesor użyje gościa IDT do przerwania odpowiedzi? Jeśli tak, to czy KVM może przekierować procesor do użycia innego IDT dla gościa (zakładając modyfikację IDTR)?
4> Gdzie znajduje się gość IDT? to skonfigurowane przez qemu podczas inicjalizacji vcpu i rejestrów (w tym IDTR)?
Mam nadzieję, że ktoś może odpowiedzieć na moje pytania. Będę bardzo doceniony.
Dzięki