From: Julien Grall <julien.grall@arm.com>
To: Dario Faggioli <dario.faggioli@citrix.com>,
George Dunlap <george.dunlap@citrix.com>
Cc: Varun.Swara@arm.com, Xen Devel <xen-devel@lists.xen.org>,
Steve Capper <Steve.Capper@arm.com>
Subject: xen/arm: Assertion 'timer->status >= TIMER_STATUS_inactive' failed at timer.c:279
Date: Tue, 26 Apr 2016 15:25:08 +0100 [thread overview]
Message-ID: <571F7A44.5000705@arm.com> (raw)
Hi Dario,
A couple of people have been reported Xen crash on the ARM64
Foundation Model [1] with recent unstable.
The crash seems to happen when Xen fails to bring up secondary CPUs
(see stack trace below).
From my understanding, csched_free_pdata is trying to kill the
timer spc->ticker. However the status of this timer is
TIMER_STATUS_invalid.
This is because csched_init_pdata has set a deadline for the
timer (set_timer) and the softirq to schedule the timer has
not yet happen (indeed Xen is still in early boot).
I am not sure how to fix this issue. How will you recommend
to fix it?
For your information the bisector fingered the following
commit:
commit 64269d936584c29de951c6613bf618640832b9a6
Author: Dario Faggioli <dario.faggioli@citrix.com>
Date: Fri Apr 8 00:03:03 2016 +0200
sched: implement .init_pdata in Credit, Credit2 and RTDS
In fact, if a scheduler needs per-pCPU information,
that needs to be initialized appropriately. So, we take
the code that is performing initializations from (right
now) .alloc_pdata, and use it for .init_pdata, leaving
only actualy allocations in the former, if any (which
is the case in RTDS and Credit1).
On the other hand, in Credit2, since we don't really
need any per-pCPU data allocation, everything that was
being done in .alloc_pdata, is now done in .init_pdata.
And the fact that now .alloc_pdata can be left undefined,
allows us to just get rid of it.
Still for Credit2, the fact that .init_pdata is called
during CPU_STARTING (rather than CPU_UP_PREPARE) kills
the need for the scheduler to setup a similar callback
itself, simplifying the code.
And thanks to such simplification, it is now also ok to
move some of the logic meant at double checking that a
cpu was (or was not) initialized, into ASSERTS (rather
than an if() and a BUG_ON).
Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
Reviewed-by: Meng Xu <mengxu@cis.upenn.edu>
Reviewed-by: George Dunlap <george.dunlap@eu.citrix.com>
(XEN) Assertion 'timer->status >= TIMER_STATUS_inactive' failed at timer.c:279
(XEN) ----[ Xen-4.7-unstable arm64 debug=y Not tainted ]----
(XEN) CPU: 0
(XEN) PC: 000000000022e304 timer.c#active_timer+0x8/0x24
(XEN) LR: 000000000022f624
(XEN) SP: 00000000002bfcd0
(XEN) CPSR: 600002c9 MODE:64-bit EL2h (Hypervisor, handler)
(XEN) X0: 0000000000000000 X1: 0000000000000003 X2: 0000000000000000
(XEN) X3: 0000000000120012 X4: 0000000000000010 X5: 0000000000000080
(XEN) X6: 0000000000000004 X7: 0000000000000001 X8: 00000000fffffffd
(XEN) X9: 000000000000000a X10: 00000000002bfb08 X11: 0000000000000033
(XEN) X12: 0000000000000001 X13: 0000000000263dc0 X14: 0000000000000020
(XEN) X15: 0000000000000000 X16: 0000000000000000 X17: 0000000000000000
(XEN) X18: 0000000000000000 X19: 000080017ffcad68 X20: 000000000030bb00
(XEN) X21: 00000000000002c0 X22: 0000000000000000 X23: 000000000030bb00
(XEN) X24: 0000000000306000 X25: 000080017ffcad90 X26: 000000000000ffff
(XEN) X27: 0000000900000000 X28: 0000000000000002 FP: 00000000002bfcd0
(XEN)
(XEN) VTCR_EL2: 80000000
(XEN) VTTBR_EL2: 0000000000000000
(XEN)
(XEN) SCTLR_EL2: 30cd183d
(XEN) HCR_EL2: 000000000038643f
(XEN) TTBR0_EL2: 00000000feef6000
(XEN)
(XEN) ESR_EL2: f2000001
(XEN) HPFAR_EL2: 0000000000000000
(XEN) FAR_EL2: 0000000000000000
(XEN)
(XEN) Xen stack trace from sp=00000000002bfcd0:
(XEN) 00000000002bfd20 00000000002208c0 000080017ffca240 0000000000000003
(XEN) 000080017ffcad50 0000000000000240 000080017ffca2a8 0000000000000003
(XEN) 00000000002bfe18 0000000080000000 00000000002bfd60 0000000000227a18
(XEN) 0000000000000003 00000000002807b0 000080017ff9c0c0 0000000000008002
(XEN) 0000000000008000 0000000000000003 00000000002bfd90 0000000000219944
(XEN) 000000000027e318 000000000027e310 000000000027e008 0000000000008002
(XEN) 00000000002bfde0 00000000002015fc 00000000fffffffd 0000000000000000
(XEN) 0000000000000003 0000000000000003 000000000027adb8 0000000000000004
(XEN) 00000000002a80a8 0000000080000000 00000000002bfe20 000000000028f7c0
(XEN) 0000000000000003 000000000027ea00 0000000000306450 0000000000280ab0
(XEN) 0000000900000000 000000000027e000 0000000000000000 00000000810021d8
(XEN) 0000000081002000 0000000080e02000 0000000088000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000001 0000000000000000
(XEN) 0000000000000000 0000000080002174 0000000000000000 0000000088000000
(XEN) 0000000000002106 00000000ff000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN) 0000000000000000 0000000000000000
(XEN) Xen call trace:
(XEN) [<000000000022e304>] timer.c#active_timer+0x8/0x24 (PC)
(XEN) [<000000000022f624>] kill_timer+0x108/0x2e0 (LR)
(XEN) [<00000000002208c0>] sched_credit.c#csched_free_pdata+0xd8/0x114
(XEN) [<0000000000227a18>] schedule.c#cpu_schedule_callback+0xc0/0x12c
(XEN) [<0000000000219944>] notifier_call_chain+0x78/0x9c
(XEN) [<00000000002015fc>] cpu_up+0x104/0x130
(XEN) [<000000000028f7c0>] start_xen+0xaf8/0xce0
(XEN) [<00000000810021d8>] 00000000810021d8
(XEN)
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Assertion 'timer->status >= TIMER_STATUS_inactive' failed at timer.c:279
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...
Regards,
[1] http://www.arm.com/products/tools/models/fast-models/foundation-model.php
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next reply other threads:[~2016-04-26 14:25 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-26 14:25 Julien Grall [this message]
2016-04-26 17:49 ` xen/arm: Assertion 'timer->status >= TIMER_STATUS_inactive' failed at timer.c:279 Dario Faggioli
2016-04-26 18:05 ` Julien Grall
2016-04-27 13:43 ` George Dunlap
2016-04-27 14:05 ` Dario Faggioli
2016-04-27 14:29 ` George Dunlap
2016-05-03 13:03 ` Julien Grall
2016-05-03 13:20 ` George Dunlap
2016-05-03 13:22 ` Julien Grall
2016-05-03 13:23 ` Wei Liu
2016-05-03 21:52 ` Dario Faggioli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=571F7A44.5000705@arm.com \
--to=julien.grall@arm.com \
--cc=Steve.Capper@arm.com \
--cc=Varun.Swara@arm.com \
--cc=dario.faggioli@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).