Re: kvm [2087]: load/store instruction decoding not implemented

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

 



On Tue, Feb 24, 2015 at 02:25:12PM +0000, Richard W.M. Jones wrote:
> On Tue, Feb 24, 2015 at 01:47:10PM +0100, Christoffer Dall wrote:
> > On Tue, Feb 24, 2015 at 12:29:25PM +0000, Richard W.M. Jones wrote:
> > > I'm not super-familiar with the aarch64 instruction set, but
> > > according to qemu the instruction is:
> > > 
> > > b8004403        str     w3, [x0],#4
> > > 
> > > (in __copy_to_user).  My interpretation is this is storing the
> > > lower 32 bits of x3 into the storage pointed to by x0 (+ 4 bytes?)
> > > Is that one of the complicated ones?
> > 
> > Shouldn't be, I don't think aarch64 does any register write-back here.
> > This is an aarch64 userspace process, right?
> > 
> > You can try adding some more debugging info to the print to get us the
> > IPA it is failing on:
> > 
> > diff --git a/arch/arm/kvm/mmio.c b/arch/arm/kvm/mmio.c
> > index 5d3bfc0..e468937 100644
> > --- a/arch/arm/kvm/mmio.c
> > +++ b/arch/arm/kvm/mmio.c
> > @@ -182,7 +182,8 @@ int io_mem_abort(struct kvm_vcpu *vcpu, struct kvm_run *run,
> >  		if (ret)
> >  			return ret;
> >  	} else {
> > -		kvm_err("load/store instruction decoding not implemented\n");
> > +		kvm_err("load/store instruction decoding not implemented (HSR: 0x%x, IPA: 0x%llx)\n",
> > +			kvm_vcpu_get_hsr(vcpu), fault_ipa);
> >  		return -ENOSYS;
> >  	}
> 
> Sorry for the delay - I had to compile and install a new kernel with
> your change.
> 
> The output is:
> 
> kvm [1568]: load/store instruction decoding not implemented (HSR: 0x92000046, IPA: 0x3c000020)
> 
> I'm not clear on what the "HSR" and "IPA" are, so I don't know what
> other debug information could be valuable here, but the same guest
> under gdb:
> 
> Program received signal SIGABRT, Aborted.
> __copy_to_user () at arch/arm64/lib/copy_to_user.S:43
> 43	       USER(9f, str	w3, [x0], #4	)
> (gdb) info registers 
> x0             0xfffffdfffaa20020	-2199113301984
> x1             0xfffffe0028343c20	-2198348743648
> x2             0xfffffffffffffffc	-4
> x3             0xd503201f		3573751839
> x4             0xfffffdfffaa20024	-2199113301980
> x5             0xffffffffffffffff	-1
> x6             0xfffffe0000a1b5b0	-2199012657744
> x7             0xfffffe0000a1b598	-2199012657768
> x8             0xfffffe0000a1b580	-2199012657792
> x9             0xfffffdfee01a4440	-2203853372352
> x10            0x101010101010101	72340172838076673
> x11            0x6			6
> x12            0x0			0
> x13            0xffffffffffffffff	-1
> x14            0xffff000000000000	-281474976710656
> x15            0xffffffffffffffff	-1
> x16            0xfffffe000013a5e8	-2199021967896
> x17            0x1			1
> x18            0x0			0
> x19            0x40000000000		4398046511104
> x20            0xfffffdfffc000020	-2199090364384
> x21            0x140			320
> x22            0x0			0
> x23            0xfffffe0000dc17d8	-2199008831528
> x24            0xfffffe000009c5b0	-2199022615120
> x25            0xfffffe0000f65000	-2199007113216
> x26            0x0			0
> x27            0x0			0
> x28            0xfffffe0029110000	-2198334275584
> x29            0xfffffe0028343bc0	-2198348743744
> x30            0xfffffe00001a6560	-2199021525664
> sp             0xfffffe0028343bc0	0xfffffe0028343bc0
> pc             0xfffffe00003e306c	0xfffffe00003e306c <__copy_to_user+44>
> cpsr           0x600001c5		1610613189
> fpsr           0x0			0
> fpcr           0x0			0
> 
IPA is the Intermediate Physical Address (i.e. your guest physical
address).  As far as I can tell from looking at the QEMU virt memory
map, 0x3x........ does not belong to any devices or RAM on the board, so
your guest seems to be doing something wrong or we have yet another
cache issue (the latter seems unlikely if you can reproduce with the
same addresses every time).

Which QEMU version?

-Christoffer
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux