On Fri, Mar 04, 2011 at 11:20:00AM +0100, Jan Kiszka wrote: > KVM only requires to set the raised IRQ in CPUState and, if the user > space irqchip is used, to kick the receiving vcpu if it is remote. > > Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> > --- > kvm-all.c | 17 +++++++++++++++++ > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/kvm-all.c b/kvm-all.c > index 226843c..c460d45 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -650,6 +650,20 @@ static CPUPhysMemoryClient kvm_cpu_phys_memory_client = { > .log_stop = kvm_log_stop, > }; > > +static void kvm_handle_interrupt(CPUState *env, int mask) > +{ > + env->interrupt_request |= mask; > + If the env->interrupt_request request is processed in userspace, such as MCE, the kick is still necessary for irqchip case. CPU_INTERRUPT_DEBUG is another example, no? > + if (!qemu_cpu_self(env)) { > + qemu_cpu_kick(env); > + } > +} > + > +static void kvm_handle_interrupt_kernel_irqchip(CPUState *env, int mask) > +{ > + env->interrupt_request |= mask; > +} > + -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html