2013-10-28 07:25:03

by Mj Embd

[permalink] [raw]
Subject: ARM GIC Virtualization question

Hi All,

a) As per GIC-400 all Physical interrupts trap into hypervisor
b) Hypervisor does ACK, programs Virtual GIC list registers (with
PhysIRQ:VIRQ) and does a world switch.
c) GIC CPU I/f interrupts Guest with the VIRQ
d) Guest does a ACK and EOI to GIC cpu i/f
e) Hypervisor gets a maintenance interrupt when Guest Does an EOI
f) Hypervisor then clears the Physical Interrupt

So for 1 interrupt there are so many context switches ? Is the
sequence right. If I am missing anything please let me know ..

Also, If a device is private to a guest, so many context switches
would reduce the performance if the device interrupts a lot.

My question is that
a) Is the above flow correct ?
b) Is this the only flow or there exists some optimisations


Thanks and Regards