qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [PATCH] target-ppc: fix sync of SPR_SDR1 with KVM


From: David Gibson
Subject: Re: [Qemu-ppc] [PATCH] target-ppc: fix sync of SPR_SDR1 with KVM
Date: Fri, 4 Mar 2016 13:39:21 +1100
User-agent: Mutt/1.5.24 (2015-08-30)

On Fri, Mar 04, 2016 at 12:45:29AM +0100, Greg Kurz wrote:
> On Thu, 3 Mar 2016 15:35:07 +1100
> David Gibson <address@hidden> wrote:
> 
> > On Wed, Mar 02, 2016 at 11:06:19AM +1100, David Gibson wrote:
> > > On Tue, Mar 01, 2016 at 07:03:10PM +0100, Greg Kurz wrote:  
> > > > The gdbstub can't access guest memory with current master. This is what 
> > > > you
> > > > get in gdb:
> > > > 
> > > > 0x00000000100009b8 in main (argc=<error reading variable: Cannot access 
> > > > memory
> > > > at address 0x3fffce4d3620>, argv=<error reading variable: Cannot access 
> > > > memory
> > > > at address 0x3fffce4d3628>) at fp.c:11
> > > > 
> > > > Bisect leads to the following commit:
> > > > 
> > > > commit fa48b4328c39b2532e47efcfcba6d4031512f514
> > > > Author: David Gibson <address@hidden>
> > > > Date:   Tue Feb 9 09:30:21 2016 +1000
> > > > 
> > > >     target-ppc: Remove hack for ppc_hash64_load_hpte*() with HV KVM
> > > > 
> > > > Looking at the env->external_htab users, I've spotted a behaviour 
> > > > change in
> > > > kvm_arch_get_registers(), which now always calls ppc_store_sdr1().
> > > > 
> > > > Checking kvmppc_kern_htab, like it is done in the MMU helpers, fixes the
> > > > issue.
> > > > 
> > > > Signed-off-by: Greg Kurz <address@hidden>  
> > > 
> > > Mea culpa.  Good catch, applied to ppc-for-2.6, thanks.  
> > 
> > Ah.. wait.. this patch breaks compile for the ppc32 target.  Can you
> > fix this please.
> > 
> 
> Oops... I'm on vacation this week. Not sure I can find time before
> next monday... :\

Ok.  I've had a closer look and realized that the earlier commit
(fa48b43) was basically a bad idea.  I'll shortly post something to
accomplish its aims in a different and better way.

> 
> > > > ---
> > > >  target-ppc/kvm.c |    2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> > > > index d67c169ba324..dbc37f25af2b 100644
> > > > --- a/target-ppc/kvm.c
> > > > +++ b/target-ppc/kvm.c
> > > > @@ -1190,7 +1190,7 @@ int kvm_arch_get_registers(CPUState *cs)
> > > >              return ret;
> > > >          }
> > > >  
> > > > -        if (!env->external_htab) {
> > > > +        if (!kvmppc_kern_htab && !env->external_htab) {
> > > >              ppc_store_sdr1(env, sregs.u.s.sdr1);
> > > >          }
> > > >  
> > > >   
> > >   
> > 
> > 
> > 
> 

-- 
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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]