From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: [patch 1/7] qemu-kvm: move vapic enablement to kvm_arch_load_regs Date: Mon, 08 Mar 2010 21:47:05 -0300 Message-ID: <20100309004834.539295724@redhat.com> References: <20100309004704.049355766@redhat.com> Cc: Marcelo Tosatti To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:63761 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756235Ab0CIAta (ORCPT ); Mon, 8 Mar 2010 19:49:30 -0500 Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o290nUIG019819 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 8 Mar 2010 19:49:30 -0500 Content-Disposition: inline; filename=move-update-vapic-to-load-regs Sender: kvm-owner@vger.kernel.org List-ID: update_vapic is used for enabling vcpu's vapic on migration. Use the new writeback states for that. Signed-off-by: Marcelo Tosatti Index: qemu-kvm-tpr/qemu-kvm-x86.c =================================================================== --- qemu-kvm-tpr.orig/qemu-kvm-x86.c +++ qemu-kvm-tpr/qemu-kvm-x86.c @@ -988,6 +988,10 @@ void kvm_arch_load_regs(CPUState *env, i kvm_arch_load_mpstate(env); kvm_load_lapic(env); } + if (level == KVM_PUT_FULL_STATE) { + if (env->update_vapic) + kvm_tpr_enable_vapic(env); + } if (kvm_irqchip_in_kernel()) { /* Avoid deadlock: no user space IRQ will ever clear it. */ env->halted = 0; @@ -1338,9 +1342,6 @@ int kvm_arch_halt(CPUState *env) int kvm_arch_pre_run(CPUState *env, struct kvm_run *run) { - if (env->update_vapic) { - kvm_tpr_enable_vapic(env); - } if (!kvm_irqchip_in_kernel()) kvm_set_cr8(env, cpu_get_apic_tpr(env)); return 0;