From patchwork Wed May 4 19:43:43 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 754682 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p44JiZx8024390 for ; Wed, 4 May 2011 19:44:35 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755629Ab1EDTob (ORCPT ); Wed, 4 May 2011 15:44:31 -0400 Received: from fmmailgate01.web.de ([217.72.192.221]:38495 "EHLO fmmailgate01.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755448Ab1EDToT (ORCPT ); Wed, 4 May 2011 15:44:19 -0400 Received: from smtp04.web.de ( [172.20.0.225]) by fmmailgate01.web.de (Postfix) with ESMTP id 6814818E4B74A; Wed, 4 May 2011 21:44:14 +0200 (CEST) Received: from [88.64.22.120] (helo=localhost.localdomain) by smtp04.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #2) id 1QHhza-0006mo-00; Wed, 04 May 2011 21:44:14 +0200 From: Jan Kiszka To: Avi Kivity , Marcelo Tosatti Cc: kvm@vger.kernel.org Subject: [PATCH 09/19] qemu-kvm: Use upstream state synchronization services Date: Wed, 4 May 2011 21:43:43 +0200 Message-Id: <23d95d97a8a6805576316e62687df097c489ebcd.1304538230.git.jan.kiszka@web.de> X-Mailer: git-send-email 1.7.1 In-Reply-To: References: In-Reply-To: References: X-Sender: jan.kiszka@web.de X-Provags-ID: V01U2FsdGVkX1+AD3jtYQLSAkVggkip73VFThE7SN7QiiHJn7zi E4QCulOxB+ndD15muYAY4VNYDCwE3cEYRV3XZJN+l7QYF5pjlS YrBcbckaw= Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Wed, 04 May 2011 19:44:35 +0000 (UTC) From: Jan Kiszka Both implementations are identical if we map run_on_cpu on qemu-kvm's on_vcpu. Signed-off-by: Jan Kiszka --- kvm-all.c | 12 ++++++------ qemu-kvm.c | 29 ----------------------------- 2 files changed, 6 insertions(+), 35 deletions(-) diff --git a/kvm-all.c b/kvm-all.c index 2e7de45..c1be056 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -33,6 +33,10 @@ #include #endif +#ifndef OBSOLETE_KVM_IMPL +#define run_on_cpu on_vcpu +#endif /* !OBSOLETE_KVM_IMPL */ + /* KVM uses PAGE_SIZE in it's definition of COALESCED_MMIO_MAX */ #define PAGE_SIZE TARGET_PAGE_SIZE @@ -896,8 +900,6 @@ void kvm_flush_coalesced_mmio_buffer(void) } } -#ifdef OBSOLETE_KVM_IMPL - static void do_kvm_cpu_synchronize_state(void *_env) { CPUState *env = _env; @@ -927,6 +929,8 @@ void kvm_cpu_synchronize_post_init(CPUState *env) env->kvm_vcpu_dirty = 0; } +#ifdef OBSOLETE_KVM_IMPL + int kvm_cpu_exec(CPUState *env) { struct kvm_run *run = env->kvm_run; @@ -1137,10 +1141,6 @@ void kvm_setup_guest_memory(void *start, size_t size) } #ifdef KVM_CAP_SET_GUEST_DEBUG -#ifndef OBSOLETE_KVM_IMPL -#define run_on_cpu on_vcpu -#endif /* !OBSOLETE_KVM_IMPL */ - struct kvm_sw_breakpoint *kvm_find_sw_breakpoint(CPUState *env, target_ulong pc) { diff --git a/qemu-kvm.c b/qemu-kvm.c index 508580e..d65ff67 100644 --- a/qemu-kvm.c +++ b/qemu-kvm.c @@ -1097,35 +1097,6 @@ void on_vcpu(CPUState *env, void (*func)(void *data), void *data) } } -static void do_kvm_cpu_synchronize_state(void *_env) -{ - CPUState *env = _env; - - if (!env->kvm_vcpu_dirty) { - kvm_arch_get_registers(env); - env->kvm_vcpu_dirty = 1; - } -} - -void kvm_cpu_synchronize_state(CPUState *env) -{ - if (!env->kvm_vcpu_dirty) { - on_vcpu(env, do_kvm_cpu_synchronize_state, env); - } -} - -void kvm_cpu_synchronize_post_reset(CPUState *env) -{ - kvm_arch_put_registers(env, KVM_PUT_RESET_STATE); - env->kvm_vcpu_dirty = 0; -} - -void kvm_cpu_synchronize_post_init(CPUState *env) -{ - kvm_arch_put_registers(env, KVM_PUT_FULL_STATE); - env->kvm_vcpu_dirty = 0; -} - static void inject_interrupt(void *data) { cpu_interrupt(current_env, (long) data);