Ho fatto il materiale KVM e ho un paio di domande che non riesco a capire.in che modo KVM gestisce l'interrupt
1> come sappiamo, normalmente l'interrupt esterno causerà VMexit e l'hypervisor inietterà un interrupt virtuale se è per il guest. Quindi quale irq verrà iniettato (intendo il vettore di interrupt per l'indicizzazione dell'ID ospite)? Come fa la KVM a sapere su questo (associare un IRQ host con un IRQ virtuale guest)?
2> se per il dispositivo assegnato all'ospite, l'hypervisor consegnerà quell'IRQ all'ospite. tracciando il codice, ho trovato che l'host IRQ è diverso da quello dell'ospite (intendo il vettore di interrupt). in che modo KVM configura il vettore di interrupt che il guest deve utilizzare?
3> se configuriamo non uscire su interrupt esterno impostando un campo in VMCS, cosa succederà durante gli interrupt fisici? la CPU utilizzerà l'IDT ospite per l'interruzione della risposta? In tal caso, KVM può reindirizzare la CPU per utilizzare un altro IDT per i guest (supponendo di modificare l'IDTR)?
4> dove si trova l'IDT ospite? è configurato da qemu durante l'inizializzazione di vcpu e registri (include l'IDTR)?
Spero davvero che qualcuno possa rispondere alle mie domande. Sarò molto apprezzato
Grazie