On 25/05/16 12:24, Julien Grall wrote:
(Move the thread to Xen-devel)
On 26/05/16 02:47, Chenxiao Zhao wrote:
On 5/25/2016 2:37 AM, Julien Grall wrote:
[...]
root@linaro-alip:~# (XEN) *** Serial input -> Xen (type 'CTRL-x' three
times to
switch input to DOM0)
(XEN) 'd' pressed -> dumping registers
(XEN)
(XEN) *** Dumping CPU0 host state: ***
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000245f10Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
IL=1 Syndrome=0x7
(XEN) CPU0: Unexpected Trap: Hypervisor
(XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
(XEN) CPU: 0
(XEN) PC: 0000000000231dc8
I was able to reproduce it with the latest RC on Juno r2. I will
investigate it.
The bisector fingered the patch:
commit 2aa925be84293b44ad587ed117184ace61b41dd6
Author: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>
Date: Thu Mar 10 16:35:50 2016 -0500
arm/x86: Use struct virtual_region to do bug, symbol, and (x86)
exception tables lookup.
During execution of the hypervisor we have two regions of
executable code - stext -> _etext, and _sinittext -> _einitext.
The later is not needed after bootup.
We also have various built-in macros and functions to search
in between those two swaths depending on the state of the system.
That is either for bug_frames, exceptions (x86) or symbol
names for the instruction.
With xSplice in the picture - we need a mechanism for new payloads
to searched as well for all of this.
Originally we had extra 'if (xsplice)...' but that gets
a bit tiring and does not hook up nicely.
This 'struct virtual_region' and virtual_region_list provide a
mechanism to search for the bug_frames, exception table,
and symbol names entries without having various calls in
other sub-components in the system.
Code which wishes to participate in bug_frames and exception table
entries search has to only use two public APIs:
- register_virtual_region
- unregister_virtual_region
to let the core code know.
If the ->lookup_symbol is not then the default internal symbol lookup
mechanism is used.
Suggested-by: Andrew Cooper <andrew.coop...@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>
Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com>
Acked-by: Julien Grall <julien.gr...@arm.com> [ARM]
Acked-by: Jan Beulich <jbeul...@suse.com>
Release-acked-by: Wei Liu <wei.l...@citrix.com>
Wei, can you consider to add this bug as a blocker?
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel