[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target-ppc: Correct KVM synchronization for ppc
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH] target-ppc: Correct KVM synchronization for ppc_hash64_set_external_hpt() |
Date: |
Mon, 4 Apr 2016 11:10:56 +1000 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Fri, Apr 01, 2016 at 12:28:31PM +0200, Paolo Bonzini wrote:
>
>
> On 01/04/2016 05:52, David Gibson wrote:
> > This seems like the right minimal fix in the qemu-2.6 timeframe to fix
> > the actual bug. However, longer term it seems like the correct thing
> > to do might be to set kvm_vcpu_dirty early in the reset path. Thoughts?
>
> Isn't it done already? vl.c does:
>
> pause_all_vcpus();
> cpu_synchronize_all_states();
> qemu_system_reset(VMRESET_REPORT);
> resume_all_vcpus();
Huh.. now I'm really confused. Given this I would indeed have
expected kvm_vpcu_dirty to be set in the reset path, but that would
make the cpu_synchronize_state() causing the problem to act as a
no-op, so it shouldn't be causing the problem.
Investigating...
>
> Thanks,
>
> Paolo
>
> > diff --git a/target-ppc/mmu-hash64.c b/target-ppc/mmu-hash64.c
> > index 72c4ab5..caf41ce 100644
> > --- a/target-ppc/mmu-hash64.c
> > +++ b/target-ppc/mmu-hash64.c
> > @@ -283,8 +283,6 @@ void ppc_hash64_set_external_hpt(PowerPCCPU *cpu, void
> > *hpt, int shift,
> > CPUPPCState *env = &cpu->env;
> > Error *local_err = NULL;
> >
> > - cpu_synchronize_state(CPU(cpu));
> > -
> > if (hpt) {
> > env->external_htab = hpt;
> > } else {
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature