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

Re: [Xen-devel] Fwd: Debugging "Xen BUG at ... list.h" on ARM

(Adding a couple of people in cc)

On 14/04/14 09:02, Thomas Leonard wrote:
Hi all,


I'm new to Xen, and trying to get the arm32 port of Mini-OS working on
a Cubieboard2. I have the board running an Ubuntu Dom0 and an Ubuntu
guest happily, and I've written up the instructions for that here:


However, while trying to get a Mini-OS domU guest working I can now
reliably crash the hypervisor. No doubt this is a bug in my guest
code, but I assume it shouldn't be possible for a buggy guest to take
down Xen itself.

Here's a simplified version of my code which shows the problem:


I'm building Xen from the stable-4.4 Git branch (03eb51340), compiled
with debug on.

The code is rather simple: it's just trying to initialise the data
cache, as described in the "ARM Cortex-A Series Programmer’s Guide".
I'm not actually sure whether this is necessary for a paravirtualised
guest, but I was getting some odd problems which looked cache related,
so I added this code in the hope of fixing that.

Does it crash if you remove your cache code?

The cfg file is just:

kernel = "/root/paratest.img"
memory = 128
name = "paratest"
vcpus = 1

When the guest is started, Xen always crashes. Sometimes silently, but
usually writing a stack-trace to the console. I've included a
selection of them in the commit messages, but a typical one looks like

hmmm, I've just tried your kernel on midway and Xen didn't crash.

Do you have more input? Number of physical CPUs used, state of the VCPU...?

     (XEN) Assertion 'svc ==
CSCHED_VCPU(curr_on_cpu(svc->vcpu->processor))' failed, line 859, file
     (XEN) Xen BUG at sched_credit.c:859

I can't find any assert at this line. Did you modify Xen code?

     (XEN) CPU1: Unexpected Trap: Undefined Instruction
     (XEN) ----[ Xen-4.4.1-pre  arm32  debug=y  Not tainted ]----
     (XEN) CPU:    1
     (XEN) PC:     002417b4 __bug+0x28/0x44
     (XEN) CPSR:   2000015a MODE:Hypervisor
     (XEN)      R0: 002656dc R1: 00000000 R2: 3fd2bd80 R3: 2000015a
     (XEN)      R4: 0000035b R5: 0025d9d0 R6: 40006230 R7: 47fe4be0
     (XEN)      R8: 00265e00 R9: 002b1ff0 R10:002e4254 R11:47fd7e9c R12:00000001
     (XEN) HYP: SP: 47fd7e94 LR: 002417b4
     (XEN) Xen call trace:
     (XEN)    [<002417b4>] __bug+0x28/0x44 (PC)
     (XEN)    [<002417b4>] __bug+0x28/0x44 (LR)
     (XEN)    [<0021bac0>] csched_tick+0x1ac/0x4d4
     (XEN)    [<0022d820>] execute_timer+0xcc/0xe0
     (XEN)    [<0022d910>] timer_softirq_action+0xdc/0x230
     (XEN)    [<00229b88>] __do_softirq+0xf4/0x100
     (XEN)    [<00229c20>] do_softirq+0x14/0x18
     (XEN)    [<0024f100>] leave_hypervisor_tail+0x50/0x6c
     (XEN)    [<00251450>] return_to_guest+0xc/0xb8


Julien Grall

Xen-devel mailing list



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