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

Re: [Xen-devel] [RFC 27/29] xen/arm: Add platform specific code for the exynos5



On Tue, 2013-04-30 at 16:40 +0100, Julien Grall wrote:
> >> +     *  2) Linux doesn't start without this trick
> > 
> > Ouch. I presume it doesn't actually end up calling hvc 0xfffc? Does it
> > work if you just map/unmap without writing anything?
> > 
> > What does Linux do without the trick? Touches address 0x0 perhaps? Would
> > anything be mapped there on a real Exynos?
> 
> Not even.
> 
> (XEN) Guest data abort: Translation fault at level 2
> (XEN)     gva=40004000
> (XEN)     gpa=0000000040004000
> (XEN)     instruction syndrome invalid
> (XEN)     eat=0 cm=0 s1ptw=0 dfsc=6
> (XEN) dom0 IPA 0x0000000040004000
> (XEN) P2M @ 02ffbfc0 mfn:0xbfdfe
> (XEN) 1ST[0x1] = 0x00000000bfdfb6ff
> (XEN) 2ND[0x0] = 0x0000000000000000
> (XEN) ----[ Xen-4.3-unstable  arm32  debug=y  Tainted:    C ]----
> (XEN) CPU:    0
> (XEN) PC:     50008338
> (XEN) CPSR:   800001d3 MODE:32-bit Guest SVC
> (XEN)      R0: 40004000 R1: 00000c12 R2: 40008000 R3: 40004000
> (XEN)      R4: 40008000 R5: 00000000 R6: 0000000e R7: ffffffff
> (XEN)      R8: 501bf8e0 R9: 40000000 R10:50000000 R11:10201105 R12:500080a8
> (XEN) USR: SP: 00000000 LR: 00000000
> (XEN) SVC: SP: 00000000 LR: 500083cc SPSR:000001d3
> (XEN) ABT: SP: 00000000 LR: 00000000 SPSR:00000000
> (XEN) UND: SP: 00000000 LR: 00000000 SPSR:00000000
> (XEN) IRQ: SP: 00000000 LR: 00000000 SPSR:00000000
> (XEN) FIQ: SP: 00000000 LR: 00000000 SPSR:00000000
> (XEN) FIQ: R8: 00000000 R9: 00000000 R10:00000000 R11:00000000 R12:00000000
> (XEN)
> (XEN) TTBR0 0000000000 TTBR1 0000000000 TCR 00000000
> (XEN) SCTLR 00c50078
> (XEN) IFAR 00000000 DFAR 00000000
> (XEN)
> (XEN) HTTBR bfed2000
> (XEN) HDFAR 40004000
> (XEN) HIFAR 0
> (XEN) HPFAR 400040
> (XEN) HCR 00002835
> (XEN) HSR   90000046
> (XEN) VTTBR 10000bfdfe000
> (XEN)
> (XEN) DFSR 0 DFAR 0
> (XEN) IFSR 0 IFAR 0
> (XEN)
> (XEN) GUEST STACK GOES HERE
> (XEN) domain_crash_sync called from traps.c:968
> 
> FYI the kernel is loaded at 0x50008000.

But it is crashing accessing 0x40004000?

> > I had a weird one running on the v8 foundation model where I had to add
> > a NOP hypercall to Linux's head.S before a certain point -- I wonder if
> > this is related?
> 
> I did some test and noticed this code is at the wrong place. I didn't
> find the issue because with/without this trick linux 3.9 will boot. It's
> only happened on the linux 3.7 tree.
> 
> The code should be done after the kernel is loading in the memory. But I
> think I should remove this code and patch the kernel. What do you think?

If the kernel is wrong (and you know how!) then you should certainly
patch it in preference to adding a hack to the hypervisor.


> By the way, which kernel version do you use? What is your modification?
> 
> > It'll be a missing flush or barrier of course, the question is where ;-)
> 
> 
> Before the unmap_domain_page, right?

I was speculating that your crash was due to a missing barrier
*somewhere*, but it doesn't seem to be the nature of your issue.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.