From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: [PATCH 2/11] QEMU/KVM: Cleanup and improve kvm_load/save_registers usage Date: Tue, 27 May 2008 00:09:41 +0200 Message-ID: <483B3525.4010100@web.de> References: <4839B14A.3010406@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Cc: Avi Kivity , Hollis Blanchard , Jerone Young , Joerg Roedel To: kvm-devel Return-path: Received: from fmmailgate01.web.de ([217.72.192.221]:50732 "EHLO fmmailgate01.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755341AbYEZWK5 (ORCPT ); Mon, 26 May 2008 18:10:57 -0400 In-Reply-To: <4839B14A.3010406@web.de> Sender: kvm-owner@vger.kernel.org List-ID: Remove redundant checkes for kvm_enabled() on register updates between userspace and kvm kernel driver. Ensure register update across all CPUs on "info cpus" monitor command. Signed-off-by: Jan Kiszka --- qemu/gdbstub.c | 12 ++++-------- qemu/monitor.c | 4 ++-- 2 files changed, 6 insertions(+), 10 deletions(-) Index: b/qemu/monitor.c =================================================================== --- a/qemu/monitor.c +++ b/qemu/monitor.c @@ -286,8 +286,7 @@ static CPUState *mon_get_cpu(void) mon_set_cpu(0); } - if (kvm_enabled()) - kvm_save_registers(mon_cpu); + kvm_save_registers(mon_cpu); return mon_cpu; } @@ -315,6 +314,7 @@ static void do_info_cpus(void) mon_get_cpu(); for(env = first_cpu; env != NULL; env = env->next_cpu) { + kvm_save_registers(env); term_printf("%c CPU #%d:", (env == mon_cpu) ? '*' : ' ', env->cpu_index); Index: b/qemu/gdbstub.c =================================================================== --- a/qemu/gdbstub.c +++ b/qemu/gdbstub.c @@ -904,8 +904,7 @@ static int gdb_handle_packet(GDBState *s addr = strtoull(p, (char **)&p, 16); #if defined(TARGET_I386) env->eip = addr; - if (kvm_enabled()) - kvm_load_registers(env); + kvm_load_registers(env); #elif defined (TARGET_PPC) env->nip = addr; #elif defined (TARGET_SPARC) @@ -928,8 +927,7 @@ static int gdb_handle_packet(GDBState *s addr = strtoull(p, (char **)&p, 16); #if defined(TARGET_I386) env->eip = addr; - if (kvm_enabled()) - kvm_load_registers(env); + kvm_load_registers(env); #elif defined (TARGET_PPC) env->nip = addr; #elif defined (TARGET_SPARC) @@ -973,8 +971,7 @@ static int gdb_handle_packet(GDBState *s } break; case 'g': - if (kvm_enabled()) - kvm_save_registers(env); + kvm_save_registers(env); reg_size = cpu_gdb_read_registers(env, mem_buf); memtohex(buf, mem_buf, reg_size); put_packet(s, buf); @@ -984,8 +981,7 @@ static int gdb_handle_packet(GDBState *s len = strlen(p) / 2; hextomem((uint8_t *)registers, p, len); cpu_gdb_write_registers(env, mem_buf, len); - if (kvm_enabled()) - kvm_load_registers(env); + kvm_load_registers(env); put_packet(s, "OK"); break; case 'm':