Message ID | 20160301180310.13357.91023.stgit@bahia.huguette.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 <david@gibson.dropbear.id.au> > 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 <gkurz@linux.vnet.ibm.com> Mea culpa. Good catch, applied to ppc-for-2.6, thanks. > --- > 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); > } > >
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 <david@gibson.dropbear.id.au> > > 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 <gkurz@linux.vnet.ibm.com> > > 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. > > --- > > 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); > > } > > > > >
On Thu, 3 Mar 2016 15:35:07 +1100 David Gibson <david@gibson.dropbear.id.au> 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 <david@gibson.dropbear.id.au> > > > 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 <gkurz@linux.vnet.ibm.com> > > > > 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... :\ > > > --- > > > 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); > > > } > > > > > > > > > > >
On Fri, Mar 04, 2016 at 12:45:29AM +0100, Greg Kurz wrote: > On Thu, 3 Mar 2016 15:35:07 +1100 > David Gibson <david@gibson.dropbear.id.au> 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 <david@gibson.dropbear.id.au> > > > > 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 <gkurz@linux.vnet.ibm.com> > > > > > > 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); > > > > } > > > > > > > > > > > > > > > > > >
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); }
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 <david@gibson.dropbear.id.au> 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 <gkurz@linux.vnet.ibm.com> --- target-ppc/kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)