From: Igor Mammedov <imammedo@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: Alexander Graf <agraf@suse.de>,
"open list:X86" <kvm@vger.kernel.org>,
Gleb Natapov <gleb@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>,
"open list:PowerPC" <qemu-ppc@nongnu.org>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH qom-cpu v2 02/29] kvm: Change cpu_synchronize_state() argument to CPUState
Date: Tue, 18 Jun 2013 11:39:56 +0200 [thread overview]
Message-ID: <20130618113956.466c8800@thinkpad> (raw)
In-Reply-To: <1371398269-6213-3-git-send-email-afaerber@suse.de>
On Sun, 16 Jun 2013 17:57:22 +0200
Andreas Färber <afaerber@suse.de> wrote:
> Change Monitor::mon_cpu to CPUState as well.
> In cpu_synchronize_all_states() use qemu_for_each_cpu() now.
>
> Reviewed-by: liguang <lig.fnst@cn.fujitsu.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
> cpus.c | 8 ++++----
> gdbstub.c | 8 ++++----
> hw/i386/kvm/apic.c | 2 +-
> hw/i386/kvmvapic.c | 4 ++--
> hw/misc/vmport.c | 2 +-
> hw/ppc/ppce500_spin.c | 2 +-
> include/sysemu/kvm.h | 4 ++--
> monitor.c | 6 +++---
> target-i386/helper.c | 4 ++--
> target-i386/kvm.c | 2 +-
> target-ppc/mmu-hash64.c | 2 +-
> target-ppc/translate.c | 2 +-
> target-s390x/kvm.c | 9 +++++----
> 13 files changed, 28 insertions(+), 27 deletions(-)
>
> diff --git a/cpus.c b/cpus.c
> index c232265..3260f09 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -407,10 +407,10 @@ void hw_error(const char *fmt, ...)
>
> void cpu_synchronize_all_states(void)
> {
> - CPUArchState *cpu;
> + CPUArchState *env;
>
> - for (cpu = first_cpu; cpu; cpu = cpu->next_cpu) {
> - cpu_synchronize_state(cpu);
> + for (env = first_cpu; env; env = env->next_cpu) {
> + cpu_synchronize_state(ENV_GET_CPU(env));
> }
> }
>
> @@ -1219,7 +1219,7 @@ CpuInfoList *qmp_query_cpus(Error **errp)
> CPUState *cpu = ENV_GET_CPU(env);
> CpuInfoList *info;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(cpu);
>
> info = g_malloc0(sizeof(*info));
> info->value = g_malloc0(sizeof(*info->value));
> diff --git a/gdbstub.c b/gdbstub.c
> index 94c78ce..bbae06d 100644
> --- a/gdbstub.c
> +++ b/gdbstub.c
> @@ -2033,7 +2033,7 @@ static void gdb_breakpoint_remove_all(void)
>
> static void gdb_set_cpu_pc(GDBState *s, target_ulong pc)
> {
> - cpu_synchronize_state(s->c_cpu);
> + cpu_synchronize_state(ENV_GET_CPU(s->c_cpu));
> #if defined(TARGET_I386)
> s->c_cpu->eip = pc;
> #elif defined (TARGET_PPC)
> @@ -2232,7 +2232,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
> }
> break;
> case 'g':
> - cpu_synchronize_state(s->g_cpu);
> + cpu_synchronize_state(ENV_GET_CPU(s->g_cpu));
> env = s->g_cpu;
> len = 0;
> for (addr = 0; addr < num_g_regs; addr++) {
> @@ -2243,7 +2243,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
> put_packet(s, buf);
> break;
> case 'G':
> - cpu_synchronize_state(s->g_cpu);
> + cpu_synchronize_state(ENV_GET_CPU(s->g_cpu));
> env = s->g_cpu;
> registers = mem_buf;
> len = strlen(p) / 2;
> @@ -2411,7 +2411,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
> env = find_cpu(thread);
> if (env != NULL) {
> CPUState *cpu = ENV_GET_CPU(env);
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(cpu);
> len = snprintf((char *)mem_buf, sizeof(mem_buf),
> "CPU#%d [%s]", cpu->cpu_index,
> cpu->halted ? "halted " : "running");
> diff --git a/hw/i386/kvm/apic.c b/hw/i386/kvm/apic.c
> index 8f80425..bd0bdd8 100644
> --- a/hw/i386/kvm/apic.c
> +++ b/hw/i386/kvm/apic.c
> @@ -129,7 +129,7 @@ static void do_inject_external_nmi(void *data)
> uint32_t lvt;
> int ret;
>
> - cpu_synchronize_state(&s->cpu->env);
> + cpu_synchronize_state(cpu);
>
> lvt = s->lvt[APIC_LVT_LINT1];
> if (!(lvt & APIC_LVT_MASKED) && ((lvt >> 8) & 7) == APIC_DM_NMI) {
> diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
> index 655483b..f93629f 100644
> --- a/hw/i386/kvmvapic.c
> +++ b/hw/i386/kvmvapic.c
> @@ -456,7 +456,7 @@ void vapic_report_tpr_access(DeviceState *dev, CPUState *cs, target_ulong ip,
> X86CPU *cpu = X86_CPU(cs);
> CPUX86State *env = &cpu->env;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(cs);
>
> if (evaluate_tpr_instruction(s, env, &ip, access) < 0) {
> if (s->state == VAPIC_ACTIVE) {
> @@ -627,7 +627,7 @@ static void vapic_write(void *opaque, hwaddr addr, uint64_t data,
> hwaddr rom_paddr;
> VAPICROMState *s = opaque;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(CPU(x86_env_get_cpu(env)));
why not use ENV_GET_CPU() here and in several other places below to make it
uniform?
>
> /*
> * The VAPIC supports two PIO-based hypercalls, both via port 0x7E.
> diff --git a/hw/misc/vmport.c b/hw/misc/vmport.c
> index 57b71f5..8363dfd 100644
> --- a/hw/misc/vmport.c
> +++ b/hw/misc/vmport.c
> @@ -66,7 +66,7 @@ static uint64_t vmport_ioport_read(void *opaque, hwaddr addr,
> unsigned char command;
> uint32_t eax;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(CPU(x86_env_get_cpu(env)));
>
> eax = env->regs[R_EAX];
> if (eax != VMPORT_MAGIC)
> diff --git a/hw/ppc/ppce500_spin.c b/hw/ppc/ppce500_spin.c
> index 1290d37..ea65414 100644
> --- a/hw/ppc/ppce500_spin.c
> +++ b/hw/ppc/ppce500_spin.c
> @@ -98,7 +98,7 @@ static void spin_kick(void *data)
> hwaddr map_size = 64 * 1024 * 1024;
> hwaddr map_start;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(cpu);
> stl_p(&curspin->pir, env->spr[SPR_PIR]);
> env->nip = ldq_p(&curspin->addr) & (map_size - 1);
> env->gpr[3] = ldq_p(&curspin->r3);
> diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
> index 3e1db28..06da2b3 100644
> --- a/include/sysemu/kvm.h
> +++ b/include/sysemu/kvm.h
> @@ -263,10 +263,10 @@ void kvm_cpu_synchronize_state(CPUState *cpu);
>
> /* generic hooks - to be moved/refactored once there are more users */
>
> -static inline void cpu_synchronize_state(CPUArchState *env)
> +static inline void cpu_synchronize_state(CPUState *cpu)
> {
> if (kvm_enabled()) {
> - kvm_cpu_synchronize_state(ENV_GET_CPU(env));
> + kvm_cpu_synchronize_state(cpu);
> }
> }
>
> diff --git a/monitor.c b/monitor.c
> index 70ae8f5..19c297d 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -191,7 +191,7 @@ struct Monitor {
> QString *outbuf;
> ReadLineState *rs;
> MonitorControl *mc;
> - CPUArchState *mon_cpu;
> + CPUState *mon_cpu;
> BlockDriverCompletionFunc *password_completion_cb;
> void *password_opaque;
> QError *error;
> @@ -900,7 +900,7 @@ int monitor_set_cpu(int cpu_index)
> if (cpu == NULL) {
> return -1;
> }
> - cur_mon->mon_cpu = cpu->env_ptr;
> + cur_mon->mon_cpu = cpu;
> return 0;
> }
>
> @@ -910,7 +910,7 @@ static CPUArchState *mon_get_cpu(void)
> monitor_set_cpu(0);
> }
> cpu_synchronize_state(cur_mon->mon_cpu);
> - return cur_mon->mon_cpu;
> + return cur_mon->mon_cpu->env_ptr;
> }
>
> int monitor_get_cpu_index(void)
> diff --git a/target-i386/helper.c b/target-i386/helper.c
> index 158710a..803945d 100644
> --- a/target-i386/helper.c
> +++ b/target-i386/helper.c
> @@ -187,7 +187,7 @@ void cpu_dump_state(CPUX86State *env, FILE *f, fprintf_function cpu_fprintf,
> char cc_op_name[32];
> static const char *seg_name[6] = { "ES", "CS", "SS", "DS", "FS", "GS" };
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(cs);
>
> eflags = cpu_compute_eflags(env);
> #ifdef TARGET_X86_64
> @@ -1116,7 +1116,7 @@ static void do_inject_x86_mce(void *data)
> CPUState *cpu = CPU(params->cpu);
> uint64_t *banks = cenv->mce_banks + 4 * params->bank;
>
> - cpu_synchronize_state(cenv);
> + cpu_synchronize_state(cpu);
>
> /*
> * If there is an MCE exception being processed, ignore this SRAO MCE
> diff --git a/target-i386/kvm.c b/target-i386/kvm.c
> index 0b0adfd..39f4fbb 100644
> --- a/target-i386/kvm.c
> +++ b/target-i386/kvm.c
> @@ -2079,7 +2079,7 @@ static int kvm_handle_debug(X86CPU *cpu,
> ret = EXCP_DEBUG;
> }
> if (ret == 0) {
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(CPU(cpu));
> assert(env->exception_injected == -1);
>
> /* pass to guest */
> diff --git a/target-ppc/mmu-hash64.c b/target-ppc/mmu-hash64.c
> index 43ccf45..5c67ec3 100644
> --- a/target-ppc/mmu-hash64.c
> +++ b/target-ppc/mmu-hash64.c
> @@ -78,7 +78,7 @@ void dump_slb(FILE *f, fprintf_function cpu_fprintf, CPUPPCState *env)
> int i;
> uint64_t slbe, slbv;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(CPU(ppc_env_get_cpu(env)));
>
> cpu_fprintf(f, "SLB\tESID\t\t\tVSID\n");
> for (i = 0; i < env->slb_nr; i++) {
> diff --git a/target-ppc/translate.c b/target-ppc/translate.c
> index 4590c6f..076cdac 100644
> --- a/target-ppc/translate.c
> +++ b/target-ppc/translate.c
> @@ -9534,7 +9534,7 @@ void cpu_dump_state (CPUPPCState *env, FILE *f, fprintf_function cpu_fprintf,
>
> int i;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(CPU(ppc_env_get_cpu(env)));
>
> cpu_fprintf(f, "NIP " TARGET_FMT_lx " LR " TARGET_FMT_lx " CTR "
> TARGET_FMT_lx " XER " TARGET_FMT_lx "\n",
> diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
> index 4d9ac4a..e7b3049 100644
> --- a/target-s390x/kvm.c
> +++ b/target-s390x/kvm.c
> @@ -450,7 +450,7 @@ static int kvm_sclp_service_call(S390CPU *cpu, struct kvm_run *run,
> uint64_t code;
> int r = 0;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(CPU(cpu));
> sccb = env->regs[ipbh0 & 0xf];
> code = env->regs[(ipbh0 & 0xf0) >> 4];
>
> @@ -656,16 +656,17 @@ static int s390_store_status(CPUS390XState *env, uint32_t parameter)
>
> static int s390_cpu_initial_reset(S390CPU *cpu)
> {
> + CPUState *cs = CPU(cpu);
> CPUS390XState *env = &cpu->env;
> int i;
>
> s390_del_running_cpu(cpu);
> - if (kvm_vcpu_ioctl(CPU(cpu), KVM_S390_INITIAL_RESET, NULL) < 0) {
> + if (kvm_vcpu_ioctl(cs, KVM_S390_INITIAL_RESET, NULL) < 0) {
> perror("cannot init reset vcpu");
> }
>
> /* Manually zero out all registers */
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(cs);
> for (i = 0; i < 16; i++) {
> env->regs[i] = 0;
> }
> @@ -685,7 +686,7 @@ static int handle_sigp(S390CPU *cpu, struct kvm_run *run, uint8_t ipa1)
> S390CPU *target_cpu;
> CPUS390XState *target_env;
>
> - cpu_synchronize_state(env);
> + cpu_synchronize_state(CPU(cpu));
>
> /* get order code */
> order_code = run->s390_sieic.ipb >> 28;
> --
> 1.8.1.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Regards,
Igor
next prev parent reply other threads:[~2013-06-18 9:40 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-16 15:57 [Qemu-devel] [PATCH qom-cpu v2 00/29] QOM CPUState, part 10: CPU loops Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 01/29] kvm: Change kvm_cpu_synchronize_state() argument to CPUState Andreas Färber
2013-06-17 19:48 ` Richard Henderson
[not found] ` <51BF360E.8090402@redhat.com>
2013-06-18 16:36 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 02/29] kvm: Change cpu_synchronize_state() " Andreas Färber
2013-06-17 19:46 ` Richard Henderson
2013-06-17 20:58 ` Andreas Färber
2013-06-17 21:02 ` Richard Henderson
2013-06-17 21:09 ` Andreas Färber
2013-06-18 9:39 ` Igor Mammedov [this message]
2013-06-21 10:25 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 03/29] gdbstub: Simplify find_cpu() Andreas Färber
2013-06-17 19:54 ` Richard Henderson
2013-06-19 17:30 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 04/29] cpu: Change cpu_exit() argument to CPUState Andreas Färber
2013-06-17 19:59 ` Richard Henderson
2013-06-17 21:00 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 05/29] cpus: Change cpu_thread_is_idle() " Andreas Färber
2013-06-17 20:00 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 06/29] cpus: Change qemu_kvm_wait_io_event() " Andreas Färber
2013-06-17 20:02 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 07/29] kvm: Change kvm_set_signal_mask() " Andreas Färber
2013-06-17 16:15 ` Paolo Bonzini
2013-06-17 20:03 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 08/29] cpus: Change qemu_kvm_init_cpu_signals() " Andreas Färber
2013-06-17 20:04 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 09/29] cpu: Turn cpu_dump_{state, statistics}() into CPUState hooks Andreas Färber
2013-06-17 20:12 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 10/29] kvm: Change kvm_handle_internal_error() argument to CPUState Andreas Färber
2013-06-17 16:16 ` Paolo Bonzini
2013-06-17 20:13 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 11/29] kvm: Change kvm_cpu_exec() " Andreas Färber
2013-06-17 16:17 ` Paolo Bonzini
2013-06-17 20:14 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 12/29] gdbstub: Set gdb_set_stop_cpu() " Andreas Färber
2013-06-17 20:15 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 13/29] cpus: Change cpu_handle_guest_debug() " Andreas Färber
2013-06-17 20:17 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 14/29] cpus: Change qemu_kvm_start_vcpu() " Andreas Färber
2013-06-17 20:18 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 15/29] cpus: Change qemu_dummy_start_vcpu() " Andreas Färber
2013-06-17 20:19 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 16/29] cpu: Change qemu_init_vcpu() " Andreas Färber
2013-06-17 20:23 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 17/29] hwaddr: Make hwaddr type usable beyond softmmu Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 18/29] cpu: Turn cpu_unassigned_access() into a CPUState hook Andreas Färber
2013-06-17 20:34 ` Richard Henderson
2013-06-21 10:31 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 19/29] cpu: Replace cpu_single_env with CPUState cpu_single_cpu Andreas Färber
2013-06-16 20:49 ` Blue Swirl
2013-06-18 16:52 ` Andreas Färber
2013-06-19 12:59 ` Paolo Bonzini
2013-06-17 20:40 ` Richard Henderson
2013-06-21 10:32 ` Andreas Färber
2013-07-15 14:56 ` Paolo Bonzini
2013-07-15 15:20 ` Andreas Färber
2013-07-15 15:29 ` Paolo Bonzini
2013-07-18 10:25 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 20/29] kvm: Change kvm_remove_all_breakpoints() argument to CPUState Andreas Färber
2013-06-17 16:17 ` Paolo Bonzini
2013-06-27 15:58 ` Andreas Färber
2013-06-17 20:41 ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 21/29] cpu: Make first_cpu and next_cpu CPUState Andreas Färber
2013-06-17 16:20 ` Paolo Bonzini
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 22/29] linux-user: Change thread_env to CPUState Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 23/29] bsd-user: " Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 24/29] cpu: Drop qemu_for_each_cpu() Andreas Färber
2013-06-16 20:26 ` Michael S. Tsirkin
2013-06-16 20:30 ` Peter Maydell
2013-06-16 20:36 ` Michael S. Tsirkin
2013-06-16 20:41 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 25/29] cpu: Move CPU_INTERRUPT_* to qom/cpu.h Andreas Färber
2013-06-17 20:59 ` Richard Henderson
2013-06-17 21:13 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 26/29] intc/sh_intc: Build sh_intc only once Andreas Färber
2013-06-17 21:08 ` Richard Henderson
2013-06-17 21:17 ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 27/29] intc/arm_gic: Build arm_gic " Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 28/29] intc/openpic: Build openpic " Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 29/29] timer/arm_mptimer: Build arm_mptimer " Andreas Färber
2013-06-26 14:20 ` [Qemu-devel] [PATCH qom-cpu v2 00/29] QOM CPUState, part 10: CPU loops Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130618113956.466c8800@thinkpad \
--to=imammedo@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=lcapitulino@redhat.com \
--cc=mtosatti@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).