diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2010-05-04 09:45:27 -0300 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-05-11 14:02:22 -0300 |
commit | 0af691d779965663abdd7bc708c2ad7bce2f6da0 (patch) | |
tree | d70d5e1f8b12998b4873fcf83c963862a30e0b4e /target-i386/kvm.c | |
parent | dbaa07c404d05676df8a081e60b6e66344eafc51 (diff) |
kvm: enable smp > 1
Process INIT/SIPI requests and enable -smp > 1.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'target-i386/kvm.c')
-rw-r--r-- | target-i386/kvm.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/target-i386/kvm.c b/target-i386/kvm.c index c9ec72eee7..bd7a190678 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -1073,6 +1073,22 @@ int kvm_arch_post_run(CPUState *env, struct kvm_run *run) return 0; } +int kvm_arch_process_irqchip_events(CPUState *env) +{ + if (env->interrupt_request & CPU_INTERRUPT_INIT) { + kvm_cpu_synchronize_state(env); + do_cpu_init(env); + env->exception_index = EXCP_HALTED; + } + + if (env->interrupt_request & CPU_INTERRUPT_SIPI) { + kvm_cpu_synchronize_state(env); + do_cpu_sipi(env); + } + + return env->halted; +} + static int kvm_handle_halt(CPUState *env) { if (!((env->interrupt_request & CPU_INTERRUPT_HARD) && |