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

Re: [Xen-devel] [XenARM] Moving Guest RAM address to other location than 0x80000000

On 10/09/2013 05:34 PM, Eric Trudeau wrote:
>> -----Original Message-----
>> From: Julien Grall [mailto:julien.grall@xxxxxxxxxx]
>> Sent: Wednesday, October 09, 2013 12:20 PM
>> To: Eric Trudeau
>> Cc: xen-devel (xen-devel@xxxxxxxxxxxxx)
>> Subject: Re: [Xen-devel] [XenARM] Moving Guest RAM address to other location
>> than 0x80000000
>> On 10/09/2013 04:57 PM, Eric Trudeau wrote:
>> Hi,
>>> Can I move the Guest RAM address to something other than 0x80000000?
>>> I would like to move the Guest RAM to 0 if possible.
>>> I get a crash while creating the domain when I just change the following
>>> in tools/libxc/xc_dom_armzimageloader.c:
>>> #define GUEST_RAM_BASE 0x00000000 /* was 0x80000000 */
>> Did you modify the guest DTS? If not, you need to fix the "reg" property
>> in memory node.
> Yes, I have a memory region of 0 in the DT.
> The crash is very early.  Could there be another code dependency on RAM 
> starting at 0x80000000 (e.g. guest mapping)?

I don't see other dependencies in the code. Did you check that the jump
address is correct (dom->parms.virt_entry)?

> BTW:   xl destroy dom1 hangs when trying to destroy this guest.

That's normal, one of the CPU has received an non-handled hypervisor
trap that is result to an infinite loop in hyp mode for this CPU.
After few minutes you should see strange warning from the dom0 kernel.

I think we should correctly handle EC=0x20 (ie prefetch abort).

> -------------------------------------------------------------------------------
> dom0 # xl create -c dom1.cfg

Can you paste the log of the following command?
xl -vvv create -c dom1.cfg

> Parsing config from dom1.cfg
> (XEN) physdev.c:57: dom1: gic_route_irq_to_guest mapped in IRQ 108
> (XEN) memory_map:add: dom1 gfn=0 mfn=0 nr=80000
> (XEN) memory_map:add: dom1 gfn=a0000 mfn=a0000 nr=20000
> (XEN) memory_map:add: dom1 gfn=f0000 mfn=f0000 nr=1000
> device vif1.0 entered promiscuous mode
> (XEN) Hypervisor Trap. HSR=0x80000006 EC=0x20 IL=0 Syndrome=6

It seems Xen received a prefetch abort, which means that the kernel is
trying to fetch an instruction in a non mapped address.

> Daemon running with PID 681(XEN) CPU3: Unexpected Trap: Hypervisor
> (XEN) ----[ Xen-4.4-unstable  arm32  debug=y  Tainted:    C ]----
> (XEN) CPU:    3
> (XEN) PC:     ff7f4014

The PC address looks weird. Silly question, Did you try to boot the
guest with the current GUEST_RAM_BASE (ie 0x80000000)?

Julien Grall

Xen-devel mailing list



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